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)

T 为左值引用类型,或当其为满足以下条件的 MoveConstructible 对象类型时,概念 CopyConstructible 即被满足:该类型的对象可以通过(可能为 const 的)左值或 const 右值,在直接初始化和拷贝初始化上下文中以常规语义构造(构造的副本不会改变源对象)。

更准确地说,如果 T 是对象类型,则仅当满足以下条件时 CopyConstructible<T> 才成立:

  • v ,一个类型为(可能带有 const 限定) T 的左值,或类型为 const T 的右值,

以下情况为真:

  • 在定义 T u = v ; 之后, u 的值等于 v
  • T { v } 的值等于 v

另请参阅

检查类型是否拥有拷贝构造函数
(类模板)