
On 5/31/2010 4:55 AM, Thomas Klimpel wrote:
Jeffrey Lee Hellrung wrote:
Ah, okay, I was thinking of the distinction between the 2 move emulation modes described in the proposed Boost.Move documentation, neither of which use a copy assignment operator with signature operator=(const T&).
The description of the non-optimized mode in <http://igaztanaga.drivehq.com/libs/move/doc/html/move/two_emulation_modes.html> says "Users can use the usual copy-assignment or the compiler-generated one". This is exactly the copy assignment operator with signature "T& operator=(const T&)". The text goes on to explicitly say "But this emulation mode does not optimize the non-const rvalue move assignment example". This is what I mean by "breaking move-assignment from temporaries for the non-optimized mode".
This is what I get for failing to properly review the documentation. I seem to remember that in previous discussions of the library, non-optimized move emulation used an operator=(T), so that at least rvalues were properly captured in practice. Now the terminology has changed (at least for me :/ ) - Jeff