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)
Défini dans l'en-tête <iterator>
inline namespace /* unspecified */ {

inline constexpr /* unspecified */ iter_move = /* unspecified */ ;

}
(depuis C++20)
(objet de point de personnalisation)
Signature d'appel
template < class T >

requires /* voir ci-dessous */

constexpr decltype ( auto ) iter_move ( T && t ) noexcept ( /* voir ci-dessous */ ) ;
(depuis C++20)

Obtient une référence rvalue ou un temporaire prvalue à partir d'un itérateur donné.

Un ranges :: iter_move ( t ) est équivalent en expression à :

  1. iter_move ( t ) , si t a un type classe ou énumération et que l'expression est bien formée lorsqu'elle est traitée comme un opérande non évalué , où la résolution de surcharge de iter_move est effectuée uniquement avec les candidats trouvés par recherche dépendante des arguments .
  2. Sinon, std :: move ( * t ) si * t est bien formé et est une lvalue.
  3. Sinon, * t si * t est bien formé et est une rvalue.

Dans tous les autres cas, un appel à ranges::iter_move est mal formé, ce qui peut entraîner un échec de substitution lorsque ranges :: iter_move ( e ) apparaît dans le contexte immédiat d'une instanciation de modèle.

Si ranges :: iter_move ( e ) n'est pas égal à * e , le programme est mal formé, aucun diagnostic requis.

Objets de point de personnalisation

Le nom ranges::iter_move désigne un objet de point de personnalisation , qui est un objet fonction const d'un type de classe littéral semiregular . Voir CustomizationPointObject pour plus de détails.

Exemple

Voir aussi

(C++20)
convertit le résultat du déréférencement de l'itérateur sous-jacent ajusté en son type de référence rvalue associé
(fonction)
(C++20)
convertit le résultat du déréférencement de l'itérateur sous-jacent en son type de référence rvalue associé
(fonction)