Hi
I am using boost 1.49. I have custom archives derived from the boost binary
archives. However it seems that when using BOOST_CLASS_EXPORT_GUID the types
are not actually registered for the custom archive types, and I am getting
unregistered_class exception when serializing derived class from base
pointer. If I am using the boost binary original archives this is not the
case. My custom archive classes are defined in in its own header file and at
the end of the file I am including BOOST_SERIALIZATION_REGISTER_ARCHIVE,
according to this in the documentation :
"
The newly created archive will usually be stored in its own header module.
All that is necessary is to include the header and construct an instance of
the new archive. EXCEPT for one special case.
Instances of a derived class are serialized through a base class pointer.
Such instances are not "registered" neither implicitly nor explicitly. That
is, the macro BOOT_CLASS_EXPORT is used to instantiate the serialization
code for the included archives.
To make this work, the following should be included after the archive class
definition.
#define BOOST_SERIALIZATION_REGISTER_ARCHIVE(Archive)
Failure to do this will not inhibit the program from compiling, linking and
executing properly - except in one case. If an instance of a derived class
is serialized through a pointer to its base class, the program will throw an
unregistered_class exception."
here is my archive h file :
-------------------
customarchive.h
--------------------
#include