std:: copy_constructible
|
定义于头文件
<concepts>
|
||
|
template
<
class
T
>
concept copy_constructible
=
|
(C++20 起) | |
当
T
是左值引用类型,或者当它是满足
move_constructible
的对象类型时,若该类型的对象在直接初始化和拷贝初始化语境中都能通过(可能为 const 的)左值或 const 右值以常规语义(构造副本且保持源对象不变)完成构造,则概念
copy_constructible
得到满足。
语义要求
若
T
是对象类型,则仅当满足以下条件时
copy_constructible<T>
被实现:
- v ,一个类型为(可能带有 const 限定) T 的左值,或类型为 const T 的右值,
以下情况为真:
- 在定义 T u = v ; 之后, u 等于 v 且 v 不会被修改;
- T ( v ) 等于 v 且不会修改 v 。
参考文献
- C++23 标准 (ISO/IEC 14882:2024):
-
-
18.4.14 概念
copy_constructible[concept.copyconstructible]
-
18.4.14 概念
- C++20 标准 (ISO/IEC 14882:2020):
-
-
18.4.14 概念
copy_constructible[concept.copyconstructible]
-
18.4.14 概念
另请参阅
|
(C++11)
(C++11)
(C++11)
|
检查类型是否拥有拷贝构造函数
(类模板) |