Boost logo

Boost :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2004-12-02 02:26:38


Hi Robert,

Robert Ramey ha escrito:

> "JOAQUIN LOPEZ MU?Z" <joaquin_at_[hidden]> wrote in message
> news:2096fa209c83.209c832096fa_at_tid.es...
>
> > If in the meantime you do the check yourself please tell me what you come
> up with.
>
> Attached please find an updated version of test_list_ptrs.cpp which
> illustrates my point. A couple of notes:
>
> a) elminate the BOOST_SERIALIZATION_IMPLEMENT - its part of the next
> version.
> b) free_a_ptr is setup to be a copy of the first element of the list of
> pointers.

This does not reflect the situation I'm talking about. The problem shows when
the pointer points to an element of the container. Here, free_a_ptr is merely
a copy of the container element (i.e. both pointers point to an external object.)

Please compile and run the attached sample. You'll agree with me that the
expected output of the program is

cont.begin(): 1
pos points to: 1
cont.begin(): 1
pos points to: 1

Yet, in my MSVC++ 6.0 compiler I get the following:

cont.begin(): 1
pos points to: 1
cont.begin(): 1
pos points to: 1243388

illustrating that the pointer is not correctly deserialized.

>
> Note that this example doesn't address this issue of what happens if the
> collection consisted of primitives (or string) which are not tracked by
> default. That question is separate from the current issue.
>

Yes, that's a different issue.

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk