<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 9, 2014 at 6:56 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.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=""><p dir="ltr"><br>
On Mar 9, 2014 6:41 PM, "Chandler Carruth" <<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>> wrote:<br>
><br>
> Author: chandlerc<br>
> Date: Sun Mar  9 20:32:25 2014<br>
> New Revision: 203431<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=203431&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=203431&view=rev</a><br>
> Log:<br>
> [PM] As Dave noticed in review, I had erroneously copied the move<br>
> constructors from the classes which only have a single reference member<br>
> to many other places.</p>
</div><p dir="ltr">Is they any reason this type even had a move constrictor if it wasn't actually doing any move work? Might be good to remove it so it doesn't erroneously indoor anyone else to make the same mistake.</p>
</blockquote></div>Sadly, yes.</div><div class="gmail_extra"><br></div><div class="gmail_extra">If it doesn't have a move constructor, then it isn't movable. If it is mixed with a move-only type for any reason, it stops being either movable or copyable.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I mean, yes the same hacks that require us to write out special members will save us there by forcing the user to write a move constructor that moves one side and copies the other, but then later when we delete that because MSVC is fixed, we'll get pretty horrible compile errors without any real evidence of why.</div>
</div>