Namensräume
Varianten
Aktionen

std::experimental::ranges::CopyConstructible

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Konzeptbibliothek
Kernsprachen-Konzepte
                              
Objektkonzepte
CopyConstructible
                              
                              
Vergleichskonzepte
Aufrufbare Konzepte
                                        
                              
URNG-Konzept
 
Definiert in Header <experimental/ranges/concepts>
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 sich um einen MoveConstructible Objekttyp handelt, bei dem ein Objekt dieses Typs aus einem (möglicherweise const) Lvalue oder const Rvalue dieses Typs in direkten und Kopierinitialisierungskontexten mit den üblichen Semantiken konstruiert werden kann (eine Kopie wird konstruiert, wobei die Quelle unverändert bleibt).

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

[bearbeiten] Siehe auch

prüft, ob ein Typ einen Kopierkonstruktor hat
(Klassenvorlage) [bearbeiten]