deref-move
От ru.cppreference.net
template< class I >
constexpr decltype(auto) /*deref-move*/( I& iter )
|
(начиная с C++17) (только для демонстрации*) |
|
Возвращает результат разыменования iter в виде rvalue:
- Если
*iterявляется ссылочным типом lvalue, возвращаетstd::move(*iter). - Иначе возвращает
*iterнапрямую.
Параметры
| iter | - | итератор, для которого будет перемещён указываемый объект |
Возвращаемое значение
Как описано выше.
Примечания
Этот шаблон функции, предназначенный только для демонстрации, введён решением LWG issue 3918. Он используется для предотвращения ненужного конструирования перемещением из результата разыменования iter, если результат уже является rvalue.
См. также
(C++17) |
перемещает диапазон объектов в неинициализированную область памяти (шаблон функции & алгоритмический функциональный объект) |
(C++20) |
|
(C++17) |
перемещает указанное количество объектов в неинициализированную область памяти (шаблон функции & алгоритмический функциональный объект) |
(C++20) |