|
Boost Users : |
Subject: Re: [Boost-users] [serialization] serialization of a class as pointer and non-pointer
From: François Mauger (mauger_at_[hidden])
Date: 2011-10-11 12:10:12
Hi Daniela,
>>>On 10/10/2011 11:10, Daniela Lambertz wrote:
> Hello,
>
> I have a class Energy which is first serialized as a vector of pointers.
> Then, it is serialized multiple times as a non-pointer attribute. Here,
> the issue occurs.
> The first non-pointer Energy is serialized normally and all following
> non-pointer Energies are serialized as pointers to the first one. This
> leads to wrong values.
You don't give details on the reason why you (try to) use the lib
in this way but it looks a design error (see the "a) don't do that"
by robert)
maybe you could investigate the use of some shared pointers
and reimplement part of your work.
a workaround that *could* work is to use 2 archives to confine the
memory tracking mechanism in 2 independant serialization regions:
- the first one for the pointer-ed stuff
- the other one for the non-pointer-ed one
but it means some additionnal management and care.
however, re-design should be considered first.
regards
frc
-- > When I tried another class which is not serialized as a pointer anywhere > in the code, it worked fine. > (I'm using non-intrusive serialization and I split the serialize-method > into save and load.) > > Now in the Serialization tutorial, I found that the adresses of objects > with the tracking trait "track_selectively" are tracked if "an object of > this type is anywhere in the program serialized through a pointer". > Can this be the reason for my Energy-problem? If yes, is there a way to > avoid this behaviour? > > So far, it only works correctly if I transform this Energy attribute > into a pointer in the save-method and serialize the pointer. But as my > program is still in development, the problem might also turn up with > other classes in the future and so it would be nice to have a general > solution for this. > > Please tell me, if you need example code. > > Hope you can help me. Thanks in advance! > > Best regards > Daniela Lambertz > > SMS schreiben mit WEB.DE FreeMail - einfach, schnell und > kostenguenstig. Jetzt gleich testen! *http://f.web.de/?mc=021192* > > > > _______________________________________________ > Boost-users mailing list > Boost-users_at_[hidden] > http://lists.boost.org/mailman/listinfo.cgi/boost-users -- François Mauger Groupe "Interactions Fondamentales et Nature du Neutrino" NEMO-3/SuperNEMO Collaboration LPC Caen-CNRS/IN2P3-UCBN-ENSICAEN Département de Physique -- Université de Caen Basse-Normandie Adresse/address: Laboratoire de Physique Corpusculaire de Caen (UMR 6534) ENSICAEN 6, Boulevard du Marechal Juin 14050 CAEN Cedex FRANCE Courriel/e-mail: mauger_at_[hidden] Tél./phone: 02 31 45 25 12 / (+33) 2 31 45 25 12 Fax: 02 31 45 25 49 / (+33) 2 31 45 25 49
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