Boost logo

Boost Users :

Subject: Re: [Boost-users] noncopyable and move semantics
From: Nathan Ridge (zeratul976_at_[hidden])
Date: 2011-07-28 19:12:02


> On 28 July 2011 13:58, Nathan Ridge
> <zeratul976_at_[hidden]<mailto:zeratul976_at_[hidden]>> wrote:
>> That's fine, but then could we introduce a different class that
>> inhibits copying but not moving? I think this would be useful, as in
>> a large percentage of cases, when you want an object to be non-
>> copyable, you still want it to be movable.
>
> I don't see anything wrong with that. I'm not sure how useful it is,
> as it only makes a real semantic difference when you want the
> implicitly declared move constructor and move assignment operator but
> no copying, which I'm guessing is rare (but I really don't have enough
> experience with r-value references to say more than that).

On the other hand, I think that is the most common case:

- you don't want to allow copying, either because it doesn't make sense
  semantically, or because it's too inefficient
- you want to allow moving so that e.g. you can store the object in a
  container without having to add a layer of indirection such as unique_ptr
- the default move constructor does the correct thing (just like in
  most cases, the default copy constructor does the correct thing)

Regards,
Nate.
                                               


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net