std::experimental::ranges:: MoveConstructible
From cppreference.net
<
cpp
|
experimental
|
ranges
|
Definiert im Header
<experimental/ranges/concepts>
|
||
|
template
<
class
T
>
concept
bool
MoveConstructible
=
|
(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 TypT, und -
u2, ein separates Objekt vom TypTgleichrv,
Folgendes trifft zu:
-
Nach der Definition
T u
=
rv
;
,
uist gleichu2; -
T{rv}ist gleichu2; und -
Wenn
Tnicht const-qualifiziert ist, dann ist der resultierende Zustand vonrv(nach Auswertung der Definition/des Ausdrucks in einem der obigen Punkte) gültig aber unspezifiziert; andernfalls ist er unverändert.
Siehe auch
|
(C++11)
(C++11)
(C++11)
|
prüft, ob ein Typ aus einer Rvalue-Referenz konstruiert werden kann
(Klassentemplate) |