
Robert Ramey
joaquin <at> tid.es wrote:
Having a look at the source code of Boost.Serialization (basic_iarchive.cpp) it's apparent that moveable_objects_recent and moveable_objects_end are updated inside basic_iarchive::load_object, but are not inside basic_iarchive::load_pointer. Of course, I don't know what the hidden implications of updating these also in load_pointer could be, but I'd appreciate if you could comment on this.
OK, I looked into this.
The list of tracked object that might be relocated as soon is the library is "done" with them.
line # 392 moveable_objects_recent = this_id;
That is when the stack is shortened. This keeps the list prety short. I would have to think about this some more.
Thank you! I'll also have a look myself and hopefully help a little.
I presume that in your case something like the following wouldn't help?
v.push_back(T()); ar >> v.back(); // assuming v.back() returns a reference
Unfortunately, no :-/ It is mandatory that I load Ts always through pointers. Joaquín M López Muñoz Telefónica, Investigación y Desarrollo