Boost logo

Boost Users :

Subject: Re: [Boost-users] [Serialization]Serializing from base class pointers clips derived class
From: Daniel Roberts (impulsionaudio_at_[hidden])
Date: 2008-12-29 11:42:52


Thanks for the response. Under closer inspection, the serialize calls are
never made for either the derived classes or the base class when using a
base class pointer. This is the xml output after save_derived is called:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="5">
<rd1 class_id="0" tracking_level="1" version="0" object_id="_0">
    <polymorphic_base class_id="1" tracking_level="0"
version="0"></polymorphic_base>
</rd1>
<rd2 class_id="2" tracking_level="1" version="0" object_id="_1">
    <polymorphic_base></polymorphic_base>
</rd2>
<rb1 class_id_reference="0" object_id_reference="_0"></rb1>
<rb2 class_id_reference="2" object_id_reference="_1"></rb2>
</boost_serialization>

I am not sure where rb1 and rb2 tags come from since the serialize functions
never get called. load_derived also does not call the serialize functions
when using the base class pointers. I have attached the code I am using.
It's identical to test_no_rtti.cpp except for two items. I do not have
test_tools.hpp so I commented corresponding functions out and switched to
std::ofstream/std::ifstream and xml_oarchive/xml_iarchive. Also, my target
is a win32 console application. Please let me know if you have any ideas.
Thanks,
Daniel Roberts





Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net