Рассмотрим следующий раздел кода для свопа:
//for some type T
void swap(T& a, T& b) {
T temp = a;
a = b;
b = temp;
}
и этот ниже:
//for some type T
void swap(T& a, T& b) {
T temp = static_cast<T&&>(a);
a = static_cast<T&&>(b);
b = static_cast<T&&>(temp);
}
У меня есть следующие сомнения: В чем разница между ними? Я имею в виду, почему первый своп дороже второго?
Ссылка: Язык программирования c ++ 7.7.2