STL实现了一个通用std::swap函数来交换2个值.它可以通过以下方式呈现:
template <class T> void swap (T& a, T& b)
{
T c(std::move(a));
a=std::move(b);
b=std::move(c);
}
Run Code Online (Sandbox Code Playgroud)
但是,有一个XOR交换算法来交换2个整数(http://en.wikipedia.org/wiki/XOR_swap_algorithm):
void swap_u( size_t& x, size_t& y )
{
x = x^y;
y = x^y;
x = x^y;
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
x86还是arm)?std::swap整数专业化?