[llvm] r206372 - [Allocator] Make BumpPtrAllocator movable and move assignable.

Chandler Carruth chandlerc at gmail.com
Fri Apr 18 13:43:04 PDT 2014


On Thu, Apr 17, 2014 at 7:04 AM, Duncan Exon Smith <dexonsmith at apple.com>wrote:

> The existence of a move constructor without a corresponding explicit copy
> constructor seems sufficiently explicit of a marker for "move only" to me.
>
>
> I think it looks more like an accident, not a marker.
>
> I prefer Stroustrup's advice [1] on this.  It's not practical to follow
> all the time in this project because of MSVC support (no sense explicitly
> defining a default definition move constructor by hand if it's not going to
> be used anyway), but the style still makes sense to me when it's possible.
>  It's cheap, and makes it clear that the omission is intentional.
>
> [1]: http://www.stroustrup.com/C++11FAQ.html#default2
>
> Do you disagree strongly?
>

I dunno about strongly, but it feels all wrong to me.

It feels like needless boilerplate, and I have a real allergy to
boilerplate. I suppose my real fear is that if programmers were to follow
this pattern consistently it would become a burden. At that point, they
will just stamp out the boiler plate using a macro or a some template in an
IDE or whatever, and they still won't think about it so we won't have
solved anything.

My preference is rule of zero, and minimally adding the routines you need.
This trusts the language to always DTRT when you add the subset, but I
think the language gets this right here.

/me continues to ponder.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140418/ae1d183f/attachment.html>


More information about the llvm-commits mailing list