
Thanks for your helpful comments. a) note that the issues related to pointers and non-default constructors
or orthogonal so you actually have two separate problems here.
I don't think these issues are orthogonal. I have tested cases where there is a default constructor, and everything works. As soon as I overload load_construct_data, it breaks. The underlying class is deserializing correctly, but the pointer causes a segfault.
b) non-default constuctors. Check out files in the ...../libs/serialization/test directory: test_non_default_ctor and test_non_default_ctor2. Make a small program to test your serialization - don't use pointers just make sure the basic serialization works.
It does. Thanks though.
c) pointers. The system is designed to permit serialization through an abstract pointer to a base class. However, it does require some care
1) there are two methods - "register" and "export" - you've used both in our example. I recommend using one or the other just to keep from getting too confused.
As I said in my email, I tried using one or the other--it doesn't matter which.
2) remember if you serialize through a derived pointer you can't de-serialize through the base class. That is, you always have to de-serialize to the exact same type you serialized from.
True.
3) your example shows class D2 { ... }; BOOST_CLASS_EXPORT_GUID(D1, "D1"); // should be D2 !!! check out ...../libs/serialization/test/test_exported.cpp for an example.
Robert Ramey
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users