Re: 'Function' a reserved word???
SCORE!!!
: )
Hey, Doug -
That found the trouble - the identifier 'Function' was used in an
enumeration. As soon as I declared 'int Function' and tried to compile I got
a much more informative error message - C2365, 'redefinition; previous
definition was an enumerator.'
It's... uhhh. a little early in the morning here, but go get yourself a beer
on me.
: )
(There - this should be one totally confusing mish-mash of top and bottom
posting.)
"Doug Harrison [MVP]" <dsh@mvps.org> wrote in message
news:vni834do2lr4uh0jg9l8u8mjahdut1akat@4ax.com...
On Wed, 21 May 2008 10:01:56 -0600, "lost_in_space" <a@b.com> wrote:
Hi, Tom -
Nope, no spelling errors. And 'Function' is perfectly descriptive - it's
a
MathEngine library and the Function class encapsulates a user-specified
mathematical expression and it's equivalent tree structure.
: P
: )
Seriously, though...
Here's a snippet showing the test case. This is from the header of a file
containing definitions for variable node classes. One of these is a
'FunctionNode' class that allows functions to refer to one another in
their
expressions (e.g., F1 = F3 /2.0). The FunctionNode objects are passed a
pointer to a Function object in their constructor. If that pointer is
called
'Function*' I get the error. If I call it anything else, it works (it
works
as shown, spelled 'Funcshun').
Any ideas? I mean, I suppose I could call it something else, but
'Function'
is appropriate and I'd like to know why it doesn't work!
namespace MathEngine
{
class Funcshun
{
};
//----------------------------------------------------------------------
class FunctionNode : public TreeNode
{
public:
FunctionNode(NodeInfo* info, int parenthesis, CoreFunction* owner,
Funcshun*
reference);
~FunctionNode(){};
};
}
//----------------------------------------------------------------------
namespace MathEngine
{
FunctionNode::FunctionNode(NodeInfo* info, int parenthesis, CoreFunction*
owner, Funcshun* reference)
: TreeNode(info, parenthesis, owner)
{
}
}
//----------------------------------------------------------------------
Here's a quick sanity test:
int Function;
This program fragment compiles fine with "cl -c a.cpp". Therefore, the
problem must lie in your actual code, as opposed to what you posted above,
which you say works (not that helpful for those trying to help you <g>).
--
Doug Harrison
Visual C++ MVP