C++11/14::右值引用

Inside_Zhang發表於2015-11-17

swap

template<typename T>
void swap(T& x, T& y)
{
    T tmp(x);
    x = y;
    y = tmp;
}

使用右值引用或者移動語義的做法:

template<typename T>
void swap(T& x, T& y)
{
    T tmp(std::move(x));
    x = std::move(y);
    y = std::move(tmp);
}

事實上這也正是<utility>給出的swap的實現機制。

相關文章