Семантика перемещения == пользовательская функция подкачки устарела?

Недавно появилось много вопросов о том, как предоставить свою собственную функцию свопа . В C ++ 11 std :: swap будет использовать std :: move и перемещать семантику, чтобы поменять местами заданные значения как можно быстрее. Это, конечно, работает только в том случае, если вы предоставите конструктор перемещения и оператор присваивания перемещения (или тот, который использует передачу по значению).

Теперь, учитывая это, действительно ли необходимо писать свой собственный swap функций в C ++ 11? Я мог думать только о неподвижных типах, но опять же, пользовательские swap обычно работают через какой-то «обмен указателями» (также известный как перемещение). Может быть, с определенными ссылочными переменными? Хм ...

31
задан Community 23 May 2017 в 11:53
поделиться