...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The header <boost/core/exchange.hpp> provides the function template
boost::exchange
which is an implementation of
the std::exchange
function introduced in C++14.
The following example shows boost::exchange
used to simplify the implementation of a move constructor.
Node(Node&& other) : head_(boost::exchange(other.head_, nullptr)) , tail_(boost::exchange(other.tail_, nullptr)) { }