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.
См. также
|
(C++17) | перемещает диапазон объектов в неинициализированную область памяти (шаблон функции и функциональный объект-алгоритм) |
|
(C++20) | |
|
(C++17) | перемещает заданное количество объектов в неинициализированную область памяти (шаблон функции и функциональный объект-алгоритм) |
|
(C++20) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/deref-move