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