std:: copy_constructible
|
Definiert im Header
<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 ein
move_constructible
Objekttyp ist, bei dem ein Objekt dieses Typs sowohl im direkten als auch im Kopierinitialisierungskontext mit den üblichen Semantiken aus einem (möglicherweise const) Lvalue oder const Rvalue dieses Typs konstruiert werden kann (eine Kopie wird erstellt, während die Quelle unverändert bleibt).
Semantische Anforderungen
Wenn
T
ein Objekttyp ist, dann wird
copy_constructible<T>
nur modelliert, wenn gegeben
- v , ein Lvalue vom Typ (möglicherweise const ) T oder ein Rvalue vom Typ const T ,
Folgendes trifft zu:
- Nach der Definition T u = v ; ist u gleich v und v wird nicht modifiziert;
- T ( v ) ist gleich v und modifiziert v nicht.
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
-
18.4.14 Konzept
copy_constructible[concept.copyconstructible]
-
18.4.14 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.4.14 Konzept
copy_constructible[concept.copyconstructible]
-
18.4.14 Konzept
Siehe auch
|
(C++11)
(C++11)
(C++11)
|
prüft, ob ein Typ einen Kopierkonstruktor besitzt
(Klassentemplate) |