std::copy_constructible
来自cppreference.com
<tbody>
</tbody>
| 在标头 <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>; |
(C++20 起) | |
概念 copy_constructible 若符合这些条件则得到满足:T 为左值引用类型,或若它是 move_constructible 对象类型,而能从(可为 const 的)该类型左值或 const 右值,在直接和复制初始化语境中以通常语义构造该类型的对象(构造副本而不更改源)。
语义要求
若 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 Concept
copy_constructible[concept.copyconstructible]
- 18.4.14 Concept
- C++20 标准(ISO/IEC 14882:2020):
- 18.4.14 Concept
copy_constructible[concept.copyconstructible]
- 18.4.14 Concept
参阅
(C++11)(C++11)(C++11) |
检查类型是否有复制构造函数 (类模板) |