std::default_initializable
定义于头文件 <concepts>
|
||
template < class T > concept default_initializable = std::constructible_from<T> && requires { T{}; } && |
(C++20 起) | |
default_initializable
概念检查 T
类型变量能否
- 值初始化( T() 为良构)
- 从空初始化器列表直接列表初始化( T{} 为良构);以及
- 默认初始化( T t; 为良构)。
如同在与 T 无关的语境中进行访问检查。仅考虑变量初始化的立即语境的合法性。
可能的实现
template<class T> concept default_initializable = std::constructible_from<T> && requires { T{}; } && requires { ::new (static_cast<void*>(nullptr)) T; }; |
参阅
(C++20) |
指定该类型的变量能从一组实参类型进行构造,或绑定到一组实参类型 (概念) |
检查类型是否有默认构造函数 (类模板) |