Namespaces
Variants

std::experimental::ranges:: CopyConstructible

From cppreference.net
Definido en el encabezado <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)

El concepto CopyConstructible se satisface si T es un tipo de referencia lvalue, o si es un MoveConstructible tipo objeto donde un objeto de ese tipo puede construirse desde un lvalue (posiblemente const) o const rvalue de ese tipo en contextos de inicialización directa y copia con la semántica habitual (una copia se construye manteniendo la fuente sin modificar).

Más precisamente, si T es un tipo de objeto, entonces CopyConstructible<T> se satisface solo si dado

  • v , un lvalue de tipo (posiblemente const ) T o un rvalue de tipo const T ,

lo siguiente es cierto:

  • Después de la definición T u = v ; , u es igual a v ;
  • T { v } es igual a v .

Véase también

verifica si un tipo tiene un constructor de copia
(plantilla de clase)