std::copy_constructible (自 C++20 起)
来自 cppreference.com
定义在头文件 <concepts> 中 |
||
template< class T > concept copy_constructible = |
(自 C++20 起) | |
如果 T 是左值引用类型,或者它是可以从该类型的(可能是 const)左值或 const 右值在直接初始化和复制初始化上下文中使用通常语义构造的 move_constructible
对象类型(使用源对象不变的情况下构造副本),则满足概念 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) |
检查类型是否具有复制构造函数 (类模板) |