Use BOOST_MOVE_TO_RV_CAST in the newly fixed assignment operator.

Update changelog
This commit is contained in:
Ion Gaztañaga
2016-06-30 12:22:41 +02:00
parent b474e8c28a
commit fec7e30d36
2 changed files with 8 additions and 1 deletions

View File

@ -762,6 +762,13 @@ Many thanks to all boosters that have tested, reviewed and improved the library.
[section:release_notes Release Notes]
[section:release_notes_boost_1_62 Boost 1.62 Release]
* Fixed bugs:
* [@https://github.com/boostorg/move/pull/9 Git Pull #9: ['"Fix assignment of move-and-copy emulated classes"]],
[endsect]
[section:release_notes_boost_1_61 Boost 1.61 Release]
* Experimental: asymptotically optimal bufferless merge and sort algorithms: [funcref boost::movelib::adaptive_merge adaptive_merge]

View File

@ -261,7 +261,7 @@
#define BOOST_COPYABLE_AND_MOVABLE(TYPE)\
public:\
TYPE& operator=(TYPE &t)\
{ this->operator=(static_cast<const ::boost::rv<TYPE>&>(t)); }\
{ this->operator=(*BOOST_MOVE_TO_RV_CAST(const ::boost::rv<TYPE>*, &t)); return *this;}\
public:\
BOOST_MOVE_FORCEINLINE operator ::boost::rv<TYPE>&() \
{ return *BOOST_MOVE_TO_RV_CAST(::boost::rv<TYPE>*, this); }\