Hi Robert, I have gone through the documentation. Below is the list of things I did for serialization and deserialization. 1. Define serialize function in the class whose instances I wish to serialize. In my example it is ObjectNew which has pointers of type Bar_A and Foo_A. Both are base classes and the pointers of these pointers point to instances of theri derived classes. So I have serialize function defined for Bar_A, Foo_A and all their derived classes (which includes Foo_C, Foo_D, Bar_B, Bar_C). 2. Call to boost::serialization::base_object in the serialize function of derived classes which in turn calls serialize function of the corresponding base classes. 3. For classes with non-defualt constructor, I have over-ridden save_construct_data and load_construct_data functions. 4. Registering derived classes whose instances are pointed by pointers with types of their base classes using BOOST_CLASS_EXPORT. 5. And finally use boost::archive::text_oarchive and boost::archive::text_iarchive for serialization and deserialization. Please let me know if I have missed something or I am doing something wrong. Pritam Gharat On Thu, Oct 31, 2019 at 5:13 PM Robert Ramey via Boost-users < boost-users@lists.boost.org> wrote:
Have you read the documentation?
Robert Ramey
On 10/31/19 2:47 AM, Pritam Gharat via Boost-users wrote:
Hi,
I am using Boost to serialize pointers of a base class which points to instances of a derived template class. I am using boost 1.7.0 and running it on Ubuntu 16.04.
The source code of the example is available at https://github.com/PritamMG/Boost-Serialization-Example
My example has a base class Bar_A (definition available in include/Abstract.hpp) which has a virtual function toStr(). It has two derived classes Bar_B and Bar_C. Bar_B is a template class. I have registered the derived classes in sc/Test.cpp. Class ObjectNew (include/Object.hpp) has a member pointer of type Bar_A which points to instances of classes Bar_B and Bar_C.
I get an error as "unregistered class". I am not sure for which class do I get this error message.
There is also an issue of non-default. If Bar_B does not have a default constructor, save_construct_data and load_construct_data are over-ridden and there I run into an error "too many template-parameter-lists".
How do I define these functions?
Thanks, Pritam
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users