I did some searching online and i couldn't find anything in reference
to this.
I am using MinGW, gcc 4.3 and am having the following compilation
issue:
class CFoo
{
public:
...
private:
std::list<CFoom _children;
};
The complaint from the compiler looks like this:
c:\mingw\bin\../lib/gcc/i386-pc-mingw32/4.3.0/include/c++/bits/
boost_concept_c heck.h: In instantiation of
'__gnu_cxx::_SG IAssignableConc ept<CFoo>':
c:\mingw\bin\../lib/gcc/i386-pc-mingw32/4.3.0/include/c++/bits/
stl_list.h:420: instantiated from 'std::list<CFoo ,
std::allocator< CFoo'
c:\mingw\bin\../lib/gcc/i386-pc-mingw32/4.3.0/include/c++/bits/
boost_concept_c heck.h:216: error:
'__gnu_cxx::_SG IAssignableConc ept<_Tp>::__a' has incomplete type
So, basically, I think what it's saying is that it doesn't know how to
build the class because CFoo hasn't been defined by the time it's
trying to create it (i.e. incomplete type). I tried adding
"std::list<clas s CFoo>" as well, but that didn't work either. This
compiles on visual studio with some warnings.
I can make this work by making it "std::list<CFoo *>", but I'm
wondering if there's a way to get this to work as defined.
thanks for listening.
-phil
to this.
I am using MinGW, gcc 4.3 and am having the following compilation
issue:
class CFoo
{
public:
...
private:
std::list<CFoom _children;
};
The complaint from the compiler looks like this:
c:\mingw\bin\../lib/gcc/i386-pc-mingw32/4.3.0/include/c++/bits/
boost_concept_c heck.h: In instantiation of
'__gnu_cxx::_SG IAssignableConc ept<CFoo>':
c:\mingw\bin\../lib/gcc/i386-pc-mingw32/4.3.0/include/c++/bits/
stl_list.h:420: instantiated from 'std::list<CFoo ,
std::allocator< CFoo'
c:\mingw\bin\../lib/gcc/i386-pc-mingw32/4.3.0/include/c++/bits/
boost_concept_c heck.h:216: error:
'__gnu_cxx::_SG IAssignableConc ept<_Tp>::__a' has incomplete type
So, basically, I think what it's saying is that it doesn't know how to
build the class because CFoo hasn't been defined by the time it's
trying to create it (i.e. incomplete type). I tried adding
"std::list<clas s CFoo>" as well, but that didn't work either. This
compiles on visual studio with some warnings.
I can make this work by making it "std::list<CFoo *>", but I'm
wondering if there's a way to get this to work as defined.
thanks for listening.
-phil
Comment