
on Tue May 08 2007, "Michael Gopshtein" <mgopshtein-AT-gmail.com> wrote:
"Atry" <pop.atry@gmail.com> wrote in message news:fd8b80680705080147t5c561dd8l9fc0ee8ede2120c7@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