
Mathias Gaunard wrote:
Thomas Klimpel wrote:
What I really would like for the move-proposal is to allow implementing the move-assignment operator as a simple swap
Testing shows that this is suboptimal and can hurt performance significantly.
You probably want to say that implementing "a = std::move(b)" as tmp.members = a.members a.members = b.members b.members = tmp.members is significantly slower than implementing it as a.members = b.members I believe this without testing. What I'm talking about is that the move-assignment operator of the proposed boost::container::vector is implemented for good reasons as vector& operator=(BOOST_RV_REF(vector) x) { if (&x != this){ this->swap(x); x.clear(); } return *this; } and it would be nice if it would be allowed to implement it as vector& operator=(BOOST_RV_REF(vector) x) { this->swap(x); return *this; } However, I accepted that "it would be nice" won't come reality, because the good reasons are just too good (with the otherwise required language change as final word). Regards, Thomas