Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Macro BOOST_MOVE_OPTIMIZED_EMULATION

BOOST_MOVE_OPTIMIZED_EMULATION —

Synopsis

// In header: <boost/move/move.hpp>

BOOST_MOVE_OPTIMIZED_EMULATION

Description

Defining or undefining this macro will change Boost.Move behaviour for copyable and movable classes when assigning from non-const rvalues:

 copyable_and_movable produce(){ return copyable_and_movable(); }

If the macro is NOT defined:

 copyable_and_movable cm;
 cm = copyable_and_movable(); //object is COPIED (missed optimization)

If the macro IS defined:

 copyable_and_movable cm;
 cm = copyable_and_movable(); //object is MOVED

However, the second option has also some downsides. See documentation for more details.


PrevUpHomeNext