Namespaces
Variants

std::experimental::ranges:: MoveConstructible

From cppreference.net
template < class T >

concept bool MoveConstructible =

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

Das Konzept MoveConstructible ist erfüllt, wenn T ein Referenztyp ist, oder wenn es ein Objekttyp ist, bei dem ein Objekt dieses Typs aus einem Rvalue dieses Typs sowohl im direkten als auch im Kopierinitialisierungskontext mit der üblichen Semantik konstruiert werden kann.

Genauer gesagt, wenn T ein Objekttyp ist, dann ist MoveConstructible<T> nur dann erfüllt, wenn gegeben

  • rv , ein Rvalue vom Typ T , und
  • u2 , ein separates Objekt vom Typ T gleich rv ,

Folgendes trifft zu:

  • Nach der Definition T u = rv ; , u ist gleich u2 ;
  • T{rv} ist gleich u2 ; und
  • Wenn T nicht const-qualifiziert ist, dann ist der resultierende Zustand von rv (nach Auswertung der Definition/des Ausdrucks in einem der obigen Punkte) gültig aber unspezifiziert; andernfalls ist er unverändert.

Siehe auch

prüft, ob ein Typ aus einer Rvalue-Referenz konstruiert werden kann
(Klassentemplate)