Boost Users :
From: Eric-public (eric-public_at_[hidden])
Date: 2005-07-13 05:05:14
Sorry, I should have described my usage a bit better. I am de-serializing
from a pointer to a class which then contains vectors of other shared_ptr's
to yet more classes.
None of the default constructors seem to be hitting my breakpoints -- which
could be a GDB issue for all I know. I'll add the load_construct_data
function to my class to see if that helps.
On a side issue, I sometimes get stream_exception's thrown when
de-serializing. Since the stream is still good, I'm assuming that this is
caused by an un-registered class being de-serialized. Do you have any
pointers as to how I can debug this?
>Robert Ramey wrote:
>A couple of hints:
>a) constructor is called only when de-serializing a pointer. So unless
>you're doing this you won't see and constructor call.
>b) When creating a new object in the course of de-serializing a pointer,
>function load_construct_data is callled. This calls an in place new for the
>default constructor. By specializing this function for your particular
>class, you can arrange to call a non-default constructor.
>> In debugging a problem, I put breakpoints on the default and copy
>> constructor along with the operator=. When de-serializing the class,
>> none of the breakpoints were hit.
>> I've searched through the documentation and old posts and can't seem
>> to find any reference to which constructor is called from the
>> serialization class. Could someone enlighten me on this? I'm sure
>> it's covered somewhere, but I've somehow missed it.
>> Boost 1.32 under Linux
Message sent using UebiMiau 2.7.2
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