OOO! Трудности могут быть и большие. Дьявол кроется в мелочах. Как,
например, обменять местами два очень больших класса? Или класс в
котором есть не копируемый ресурс (открытый сокет, например). Или
два контейнера (чуть попроще, т.к. у них есть swap() свой или они
имеют move-конструктор). Где-то читал но забыл, std::swap в общем
сложная функция...