std::copy_constructible
| Definiert in der Header-Datei <concepts> |
||
| template< class T > concept copy_constructible = |
(seit C++20) | |
Das Konzept copy_constructible ist erfüllt, wenn T ein Lvalue-Referenztyp ist oder wenn es sich um einen move_constructible Objekttyp handelt, bei dem ein Objekt dieses Typs aus einem (möglicherweise konstanten) Lvalue oder einem const-Rvalue dieses Typs in beiden Kontexten der direkten und Kopierinitialisierung mit den üblichen Semantiken konstruiert werden kann (eine Kopie wird mit unverändertem Quellobjekt konstruiert).
[edit] Semantische Anforderungen
Wenn T ein Objekttyp ist, dann wird copy_constructible<T> nur dann modelliert, wenn für
- v, ein Lvalue vom Typ (möglicherweise const) T oder ein Rvalue vom Typ const T,
die folgenden Bedingungen erfüllt sind
- Nach der Definition T u = v; ist u gleich v und v wird nicht modifiziert;
- T(v) ist gleich v und modifiziert v nicht.
[edit] Referenzen
- C++23 Standard (ISO/IEC 14882:2024)
- 18.4.14 Concept
copy_constructible[concept.copyconstructible]
- 18.4.14 Concept
- C++20 Standard (ISO/IEC 14882:2020)
- 18.4.14 Concept
copy_constructible[concept.copyconstructible]
- 18.4.14 Concept
[edit] Siehe auch
| (C++11)(C++11)(C++11) |
prüft, ob ein Typ einen Kopierkonstruktor hat (Klassenvorlage) |