
Yes, moving from lvalues with copy or assignment syntax is never a good idea. Sent from my iPhone On Mar 10, 2009, at 8:45 AM, Frank Mori Hess <frank.hess@nist.gov> wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Tuesday 10 March 2009, Neal Becker wrote:
2) """ Modification from std::vector: polynomial<FieldType>& operator=(std::vector<FieldType>& c);
This function uses the nested std::vector::swap() function. The c vector should contain new coefficients. """
Does this mean that the vector 'c' is modified? I can't accept this. This really violates the principle of least surprise. Noone expects an operator= to act like that.
I agree with Neal. By the way, there is also a copy constructor with the same problem. Perhaps the operator= overload for std::vector should be renamed to something like "move_from" until a move emulation library gets added into boost? Or, only real moves using rvalue references should be supported. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkm2ix8ACgkQ5vihyNWuA4WsfwCg1caMvHYK+CKngKcRMZv8JMzH G/QAnAjAPW4Wr9cs4QNoMI+fdDNB97ad =7ycd -----END PGP SIGNATURE----- _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost