std::ranges:: iter_move
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
iter_move
=
/* unspecified */
;
|
(desde C++20)
(objeto de punto de personalización) |
|
|
Firma de llamada
|
||
|
template
<
class
T
>
requires
/* see below */
|
(desde C++20) | |
Obtiene una referencia de rvalue o un temporal prvalue de un iterador dado.
Una ranges :: iter_move ( t ) es equivalente-expresión a:
-
iter_move
(
t
)
, si
t
tiene un tipo de clase o enumeración y la expresión es válida cuando se trata como un
operando no evaluado
, donde la
resolución de sobrecarga
de
iter_movese realiza únicamente con los candidatos encontrados mediante búsqueda dependiente de argumento . - De lo contrario, std :: move ( * t ) si * t es válido y es un lvalue.
- De lo contrario, * t si * t es válido y es un rvalue.
En todos los demás casos, una llamada a
ranges::iter_move
está mal formada, lo que puede resultar en
fallo de sustitución
cuando
ranges
::
iter_move
(
e
)
aparece en el contexto inmediato de una instanciación de plantilla.
Si ranges :: iter_move ( e ) no es igual a * e , el programa está mal formado, no se requiere diagnóstico.
Objetos de punto de personalización
El nombre
ranges::iter_move
denota un
objeto de punto de personalización
, que es un
objeto función
constante de tipo clase
literal
semiregular
. Consulte
CustomizationPointObject
para más detalles.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
(C++20)
|
convierte el resultado de desreferenciar el iterador subyacente ajustado a su tipo de referencia de valor asociado
(función) |
|
(C++20)
|
convierte el resultado de desreferenciar el iterador subyacente a su tipo de referencia de valor asociado
(función) |