◐ Shell
clean mode source ↗

std::copy_constructible - cppreference.com

De cppreference.com

Definido en el archivo de encabezado <concepts>

template <class T> concept copy_constructible = std::move_constructible<T> && std::constructible_from<T, T&> && std::convertible_to<T&, T> && std::constructible_from<T, const T&> && std::convertible_to<const T&, T> && std::constructible_from<T, const T> && std::convertible_to<const T, T>;

(desde C++20)

El concepto copy_constructible (construible mediante copia) se satisface si T es un tipo referencia lvalue, o si es un tipo objeto move_constructible donde un objeto de ese tipo puede construirse de un lvalue (posiblemente const) o un rvalue const de ese tipo tanto en contextos de inicialización directa como en contextos de inicialización de copia, con la semántica habitual (se construye una copia con sin modificar la fuente).

Requerimientos semánticos

Si T es un tipo objeto, entonces copy_constructible<T> se modela solo si dados

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

lo siguiente es verdadero:

  • Después de la definición de T u = v;, u es igual a v y v no se modifica;
  • T(v) es igual a v y no modifica a v.

Véase también