std::swap 함수에는 2개의 변수를 swap하는 함수가 존재한다. Template 함수로 존재하며, input parameter 2개를 reference로 받아서 둘의 값을 swap한다.
namespace std {
template <typename T>
void swap(T& a, T& b) {
T temp = std::move(a);
a = std::move(b);
b = std::move(temp);
}
}