Spec-Zone.ru › C++

deref-move

template< class I >
constexpr decltype(auto) /*deref-move*/( I& iter )
(начиная с C++17)
(только для иллюстрации*)

Возвращает результат разыменования iter как rvalue:

  • Если *iter имеет тип lvalue-ссылки, возвращает std::move(*iter).
  • В противном случае возвращает непосредственно *iter.

Параметры

iter - итератор, объект, на который он ссылается, будет перемещён

Возвращаемое значение

Как описано выше.

Примечания

Этот шаблон функции, предназначенный только для иллюстрации, введён в результате принятия предложения LWG 3918. Он используется для предотвращения ненужного перемещающего конструирования результата разыменования iter, если результат уже является rvalue.

См. также

uninitialized_move
(C++17)
перемещает диапазон объектов в неинициализированную область памяти
(шаблон функции и функциональный объект-алгоритм)
ranges::uninitialized_move
(C++20)
uninitialized_move_n
(C++17)
перемещает заданное количество объектов в неинициализированную область памяти
(шаблон функции и функциональный объект-алгоритм)
ranges::uninitialized_move_n
(C++20)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/deref-move

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API