Hello everybody,
I defined the following objects to be serialized:
class MyElementObject
{
friend class boost::serialization::access;
public:
template<class Archive>
void serialize(Archive & ar, const unsigned int version) { }
};
template<class T>
class MyRecursiveObject
{
friend class boost::serialization::access;
public:
T element;
std::vector
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi! Am 27.11.12 11:13, schrieb kean:
//serialize MyRecursiveObject and the vector of pointers { ofstream ofs("filename"); boost::archive::text_oarchive oa(ofs); oa << rec_object; oa << elt_ptrs; }
The point here is object tracking: serializing a pointer will invoke object tracking, but your pointer points to an object that has already been serialized without tracking. You will need to put the following into your code: BOOST_CLASS_TRACKING( MyElementObject, boost::serialization::track_always) Docs are at http://www.boost.org/doc/libs/1_51_0/libs/serialization/doc/traits.html#trac... Frank -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.17 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: keyserver x-hkp://pool.sks-keyservers.net iEYEARECAAYFAlC3k+cACgkQhAOUmAZhnmr1twCfcfdDVX9LQENB2gQO3E1MLk/V 7/oAnRdJYQm0q0xOtFXZ7vXVkqLLA+HT =GdiJ -----END PGP SIGNATURE-----
participants (2)
-
Frank Birbacher
-
kean