У меня был код С++ 03, который реализовал swap для определенных классов, чтобы быстро сделать std::sort (и другие функции).
К сожалению, для меня std::sort теперь, кажется, использует std::move, что означает, что мой код теперь намного медленнее, чем в С++ 03.
Я знаю, что могу использовать #if __cplusplus >= 201103L для условного определения оператора move-constructor/move-assign, но мне интересно, есть ли лучший способ, который не использует препроцессорные хаки?
(Я бы хотел избегать пропроцессорных хаков, потому что они были бы уродливыми, так как я не только должен был тестировать такие версии компилятора, как _MSC_VER >= 1600, но и потому, что они не будут хорошо работать с такими инструментами, как LZZ, которые не распознают синтаксис перемещения С++ 11, но заставляют меня предварительно обработать код.)