|
Boost : |
From: Howard Hinnant (hinnant_at_[hidden])
Date: 2002-03-13 17:43:20
On Wednesday, March 13, 2002, at 05:26 PM, brangdon_at_[hidden]
wrote:
> That approach can also be used for relocate, if we have a no-throw
> default
> constructor:
>
> Base::Base(relocate from x)
> {
> x.notify_destruction();
> listners_ = relocate from x.listners_;
> notify_construction();
> }
You're dancing on the edge of that mine field with
x.notify_destruction(). Innocent looking maintenance could make that
call operate on an x that's been partially destructed.
> Earlier (March 9th) you wrote:
>
> relocate construct is not implementable for those classes that
> have a base class or member classes that do not support move
> construct.
>
> I think this is over-stated, that's all. Relocate construct can be
> implemented in terms of relocation of bases or members. It is not
> necessary to have move() to implement relocate().
Agreed. With the lame duck concept, relocate construct is more
approachable.
-Howard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk