std::ranges:: iter_move
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовке
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
iter_move
=
/* unspecified */
;
|
(начиная с C++20)
(объект точки кастомизации) |
|
|
Сигнатура вызова
|
||
|
template
<
class
T
>
requires
/* see below */
|
(начиная с C++20) | |
Получает rvalue-ссылку или prvalue временный объект из заданного итератора.
Выражение ranges :: iter_move ( t ) является эквивалентным по выражению следующему:
-
iter_move
(
t
)
, если
t
имеет классовый тип или тип перечисления, и выражение корректно при рассмотрении как
невычисляемый операнд
, где
разрешение перегрузки
для
iter_moveвыполняется только с кандидатами, найденными с помощью поиска, зависимого от аргументов . - В противном случае, std :: move ( * t ) , если * t корректно и является lvalue.
- В противном случае, * t , если * t корректно и является rvalue.
Во всех остальных случаях вызов
ranges::iter_move
является некорректным, что может привести к
ошибке подстановки
, когда
ranges
::
iter_move
(
e
)
появляется в непосредственном контексте инстанцирования шаблона.
Если ranges :: iter_move ( e ) не равно * e , программа является некорректной, диагностика не требуется.
Объекты точек кастомизации
Имя
ranges::iter_move
обозначает
объект точки кастомизации
, который является константным
функциональным объектом
типа
литерального
semiregular
класса. Для подробностей см.
CustomizationPointObject
.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++20)
|
преобразует результат разыменования скорректированного базового итератора в соответствующий тип rvalue-ссылки
(функция) |
|
(C++20)
|
преобразует результат разыменования базового итератора в соответствующий тип rvalue-ссылки
(функция) |