<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 17, 2014 at 7:04 AM, Duncan Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra">The existence of a move constructor without a corresponding explicit copy constructor seems sufficiently explicit of a marker for "move only" to me.</div>

</div>
</div></blockquote><div><br></div></div><div>I think it looks more like an accident, not a marker.</div><br><div>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. </div>
<div><br></div><div>[1]: <a href="http://www.stroustrup.com/C++11FAQ.html#default2" target="_blank">http://www.stroustrup.com/C++11FAQ.html#default2</a></div><div><br></div><div>Do you disagree strongly?</div></blockquote>
</div><br></div><div class="gmail_extra">I dunno about strongly, but it feels all wrong to me.</div><div class="gmail_extra"><br></div><div class="gmail_extra">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.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">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.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">/me continues to ponder.</div></div>