Boost logo

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