std:: move_constructible
From cppreference.net
|
Défini dans l'en-tête
<concepts>
|
||
|
template
<
class
T
>
concept move_constructible = std:: constructible_from < T, T > && std:: convertible_to < T, T > ; |
(depuis C++20) | |
Le concept
move_constructible
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.
Exigences sémantiques
Si
T
est un type d'objet, alors
move_constructible<T>
est modélisé uniquement si étant donné
-
rv, une rvalue de typeT, et -
u2, un objet distinct de typeTégal àrv,
les affirmations suivantes sont vraies :
-
Après la définition
T u
=
rv
;
,
uest égal àu2; -
T(rv)est égal àu2; et -
Si
Tn'est pas qualifié const, alors l'état résultant derv(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é.
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
-
18.4.13 Concept
move_constructible[concept.moveconstructible]
-
18.4.13 Concept
- Norme C++20 (ISO/CEI 14882:2020) :
-
-
18.4.13 Concept
move_constructible[concept.moveconstructible]
-
18.4.13 Concept
Voir aussi
|
(C++11)
(C++11)
(C++11)
|
vérifie si un type peut être construit à partir d'une référence rvalue
(modèle de classe) |