Namespaces
Variants

std::experimental::ranges:: CopyConstructible

From cppreference.net
template < class T >

concept bool CopyConstructible =
MoveConstructible < T > &&
Constructible < T, T & > && ConvertibleTo < T & , T > &&
Constructible < T, const T & > && ConvertibleTo < const T & , T > &&

Constructible < T, const T > && ConvertibleTo < const T, T > ;
(ranges TS)

Das Konzept CopyConstructible ist erfüllt, wenn T ein Lvalue-Referenztyp ist, oder wenn es ein MoveConstructible Objekttyp ist, bei dem ein Objekt dieses Typs aus einem (möglicherweise const) Lvalue oder const Rvalue dieses Typs sowohl in direkter als auch in Kopierinitialisierungskontexten mit der üblichen Semantik konstruiert werden kann (eine Kopie wird erstellt, wobei die Quelle unverändert bleibt).

Genauer gesagt, wenn T ein Objekttyp ist, dann ist CopyConstructible<T> nur dann erfüllt, 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 ;
  • T { v } ist gleich v .

Siehe auch

prüft, ob ein Typ einen Kopierkonstruktor besitzt
(Klassentemplate)