std::experimental::ranges::MoveConstructible
Von cppreference.com
< cpp | experimental | ranges
| Definiert in Header <experimental/ranges/concepts> |
||
| template< class T > Konzept bool MoveConstructible = |
(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 TypT, und -
u2, ein vonrvverschiedenes Objekt vom TypT, das gleichrvist,
die folgenden Bedingungen erfüllt sind
- Nach der Definition T u = rv;, ist
ugleichu2; -
T{rv}ist gleichu2; und - Wenn
Tnicht const-qualifiziert ist, dann ist der resultierende Zustand vonrv(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
| (C++11)(C++11)(C++11) |
prüft, ob ein Typ aus einer rvalue-Referenz konstruiert werden kann (Klassenvorlage) |