Boost logo

Boost :

From: brangdon_at_[hidden]
Date: 2002-03-13 17:26:18

In-Reply-To: <15083E19-360A-11D6-ABFF-003065D18932_at_[hidden]>
On Tue, 12 Mar 2002 17:39:58 -0500 Howard Hinnant (hinnant_at_[hidden])
> Base::Base(move from x)
> {
> x.notify_destruction();
> listners_ = move from x.listners_;
> notify_construction();
> }

That approach can also be used for relocate, if we have a no-throw default

      Base::Base(relocate from x)
          listners_ = relocate from x.listners_;

> Note that the move constructor non-destructively copied client_
> (just a pointer in this example).

As I said, there are examples where move happens to work, but it isn't
inevitably safe.

> I'm not really seeing too much of an issue either way. I think I may
> be missing your point.

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

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().

-- Dave Harris

Boost list run by bdawes at, gregod at, cpdaniel at, john at