Namensräume
Varianten
Aktionen

std::experimental::ranges::MoveConstructible

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Konzeptbibliothek
Kernsprachen-Konzepte
                              
Objektkonzepte
MoveConstructible
                              
                              
Vergleichskonzepte
Aufrufbare Konzepte
                                        
                              
URNG-Konzept
 
Definiert in Header <experimental/ranges/concepts>
template< class T >

Konzept 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, dessen Objekt aus einem Rvalue dieses Typs in beiden Initialisierungskontexten (direkte und Kopierinitialisierung) mit den üblichen Semantiken konstruiert werden kann.

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

  • rv, ein Rvalue vom Typ T, und
  • u2, ein von rv verschiedenes Objekt vom Typ T, das gleich rv ist,

die folgenden Bedingungen erfüllt sind

  • Nach der Definition T u = rv;, ist u gleich u2;
  • T{rv} ist gleich u2; und
  • Wenn T nicht const-qualifiziert ist, dann ist der resultierende Zustand von rv (nachdem die Definition/der Ausdruck in einem der obigen Punkte ausgewertet wurde) gültig, aber nicht spezifiziert; andernfalls ist er unverändert.

[bearbeiten] Siehe auch

prüft, ob ein Typ aus einer rvalue-Referenz konstruiert werden kann
(Klassenvorlage) [bearbeiten]