<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 21, 2015 at 5:29 PM, Eric Fiselier <span dir="ltr"><<a href="mailto:eric@efcs.ca" target="_blank">eric@efcs.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">EricWF added a comment.<br>
<br>
Thanks for the patch. I ran into this issue the other day and I'm glad to see it fixed.<br>
<br>
A little rational: The explicit move's are needed in order to "move" a `unique_ptr` in C++03. There is a special definition of `std::move` in memory at line 3100 that performs some hacks to make `unique_ptr` movable. I don't think any other classes benefit from the "explicit move" in C++03.</blockquote><div><br></div><div>I don't think that's right. In C++03, unique_ptr has a unique_ptr(unique_ptr&) constructor. And the C++03 std::move is:</div><div><br></div><div>  template<typename T> T &move(T &v) { return v; }</div><div><br></div><div>So... the "explicitly moved for C++03" call to std::move in map appears to also be redundant (and pessimizing) in C++03. In fact, in C++03, std::move appears to *always* be a no-op.<br></div></div></div></div>