Namespaces
Variants

std::experimental::ranges:: CopyConstructible

From cppreference.net
Определено в заголовочном файле <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)

Концепт CopyConstructible удовлетворяется, если T является типом lvalue-ссылки, или если это MoveConstructible объектный тип, где объект этого типа может быть сконструирован из (возможно, const) lvalue или const rvalue этого типа в контекстах как прямой, так и копирующей инициализации с обычной семантикой (копия создается без изменения источника).

Более точно, если T является типом объекта, тогда CopyConstructible<T> выполняется только при условии, что даны

  • v , lvalue типа (возможно const ) T или rvalue типа const T ,

следующие утверждения верны:

  • После определения T u = v ; , u равно v ;
  • T { v } равно v .

Смотрите также

проверяет, имеет ли тип конструктор копирования
(шаблон класса)