Boost logo

Boost :

Subject: Re: [boost] Interest in boost.deepcopy
From: Allan Johns (allan.johns_at_[hidden])
Date: 2011-10-24 22:44:52


On Tue, Oct 25, 2011 at 1:29 PM, Julien Nitard <julien.nitard_at_[hidden]>wrote:

> Hi,
>
> > Consider an object hierarchy in which there may be multiple references to
> > shared objects. A deep copy should give an identical, but entirely
> separate
> > copy of the entire structure.
> > Also consider eg std::map<std::string,T*>... the std::map copy
> constructor
> > is not going to create new instances of T in the copy - this is a shallow
> > copy.
> >
> If I understand properly, when you encounter a pointer you duplicate the
> object pointed to. Is that right ?

Often but not always. Sometimes a type will want specific behaviour, such as
sharing an internal reference with the original object because there is some
COW pattern implemented.

> Does it work properly if (in your example
> above) T is a polymorphic class ? If yes, how ?
>
>
Yes, and in the same way boost.serialize works... each polymorphic class is
registered beforehand.

>
> Regards,
>
> Julien
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


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