Что есть "ручной"?
Ну как в коде сверху с помощью временной переменной
Короче (одна строка, а не три), понятнее(ты видишь слово swap, указывающее на суть операции, а не догадываешься из содержимого трёх строк об их сути), эффективнее в общем случае, поскольку использует конструкторы перемещения, а не копирования
насчёт оптимизации у меня вышло что без неё std::swap медленнее , а при -o1 и дальше эквивалентно
Обсуждают сегодня