I'm embarrassed to to ask this, but maybe someone could interpret this strange compiler error for me: I am registering a
derived class everywhere that it is archived through a base class pointer:
class MyDerivedClass : public MyBaseClass { … };
class AnotherClass
{
MyBaseClass *p;
…
void serialize(Archive &ar, unsigned int)
{
ar.register_type(static_cast<MyDerivedClass *>(NULL)); // compiler error here
…
ar & p;
}
At the line above, the error is
error: no matching function for call to ‘boost::archive::xml_oarchive::register_type(AnotherClass:serialize (Archive&, unsigned int) [with Archive = boost::archive::xml_oarchive]::MyDerivedClass*)’
Does the complier think that MyDerivedClass is a member of boost::archive::xml_oarchive?
Im using Boost 1.57 and gcc 4.4.7. Thanks.