Namespaces
Variants

std::ranges:: iter_move

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
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 */

constexpr decltype ( auto ) iter_move ( T && t ) noexcept ( /* 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:

  1. 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_move se realiza únicamente con los candidatos encontrados mediante búsqueda dependiente de argumento .
  2. De lo contrario, std :: move ( * t ) si * t es válido y es un lvalue.
  3. 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

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)