[gnu.g++.help] Compilation error not understood

mcginnis@SHARKEY.CC.UMICH.EDU (Brian McGinnis) (05/16/91)

Hi,

I am trying to compile the 3.0 version of NIHCL libraries with g++ version
1.37.  I keep recieving the following error message and can't seem to 
interpret it. 

Object.h: In function class Class &static Class::castdown (class Object &):
In file included from Collection.h:28, from ArrayOb.h:28, from ArrayOb.c:38:
Object.h:383: type `Class' is not a base type for type `Object'
Object.h: In function const class Class &static Class::castdown (const class Object &):
Object.h:383: type `Class' is not a base type for type `Object'
Collection.h: In function class Collection &static Collection::castdown (class Object &):
In file included from ArrayOb.h:28, from ArrayOb.c:38:Collection.h:38: type `Collection' is not a base type for type `Object'
Collection.h: In function const class Collection &static Collection::castdown (const class Object &):
Collection.h:38: type `Collection' is not a base type for type `Object'


he error occurs in MACRO that is called withing the class definitions.
The macro is as defined below

#define DECLARE_CASTDOWN(classname) \
        static classname& castdown(Object& p)                   { return (classname&)p; } \
        static const classname& castdown(const Object& p)       { return (const classname&)p; } \
        static classname* castdown(Object* p)                   { return (classname*)p; } \
        static const classname* castdown(const Object* p)       { return (const classname*)p; } \


If you recognize this error or could give me any suggestions at all I 
would be greatly appreciative.  I really like using the g++ compiler,
its seems to be the quickest, gives the most options, and best feedback
of the c++ compilers I have used( AT&T and Glockenspiel).  But if I cant't
get it to compile the NIHCL I will have to abandon it, Please help.

Thanks,

Brian McGinnis
mcginnis@mcginnis.aa.cad.slb.com