Namespaces
Variants

std::experimental::ranges:: MoveConstructible

From cppreference.net
Défini dans l'en-tête <experimental/ranges/concepts>
template < class T >

concept bool MoveConstructible =

Constructible < T, T > && ConvertibleTo < T, T > ;
(ranges TS)

Le concept MoveConstructible est satisfait si T est un type référence, ou s'il s'agit d'un type objet pour lequel un objet de ce type peut être construit à partir d'une rvalue de ce type dans des contextes d'initialisation directe et par copie, avec la sémantique habituelle.

Plus précisément, si T est un type d'objet, alors MoveConstructible<T> est satisfait uniquement si étant donné

  • rv , une rvalue de type T , et
  • u2 , un objet distinct de type T égal à rv ,

les affirmations suivantes sont vraies :

  • Après la définition T u = rv ; , u est égal à u2 ;
  • T{rv} est égal à u2 ; et
  • Si T n'est pas qualifié const, alors l'état résultant de rv (après l'évaluation de la définition/expression dans l'un ou l'autre des points ci-dessus) est valide mais non spécifié ; sinon, il reste inchangé.

Voir aussi

vérifie si un type peut être construit à partir d'une référence rvalue
(modèle de classe)