|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2007-05-09 12:25:49
on Tue May 08 2007, "Michael Gopshtein" <mgopshtein-AT-gmail.com> wrote:
> "Atry" <pop.atry_at_[hidden]> wrote in message
> news:fd8b80680705080147t5c561dd8l9fc0ee8ede2120c7_at_mail.gmail.com...
>> Yes, "defragment" or other automation memory management is useful, but the
>> existing code depends on native pointer would be very hard to work
>> together,
>> almost all C++ code need to recode if they want to use these futures.
>>
>
> I do "feel" that just moving object's memory is not safe, but can't find
> explanation why it will cause problems. Can you give an example of a class
> for which this will not work?
struct B;
struct A {
A(B*p) : p(p) {}
B* p;
};
struct B : noncopyable {
B() : px(new A(this)) {}
auto_ptr<A> px; // invariant: px->p == this
};
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com Don't Miss BoostCon 2007! ==> http://www.boostcon.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk