C++14

// <utility>
template< class T, class U = T >
    T exchange( T& obj, U&& new_value );

将一个对象赋值为新的值,并返回原来的值。