命名空间
变体
操作

std::default_initializable

来自 cppreference.cn
< cpp‎ | concepts
定义于头文件 <concepts>
template< class T >

concept default_initializable = std::constructible_from<T> && requires { T{}; } &&

                                /* T t; is well-formed, see below */;
(since C++20)

default_initializable 概念检查类型 T 的变量是否可以被

访问检查的执行方式如同在与 T 无关的上下文中。仅考虑变量初始化的直接上下文的有效性。

[编辑] 可能的实现

template<class T>
concept default_initializable =
    std::constructible_from<T> &&
    requires { T{}; ::new T; };

[编辑] 参考文献

  • C++23 标准 (ISO/IEC 14882:2024)
  • 18.4.12 概念 default_initializable [concept.default.init]
  • C++20 标准 (ISO/IEC 14882:2020)
  • 18.4.12 概念 default_initializable [concept.default.init]

[编辑] 参见

指定该类型的变量可以从一组参数类型构造或绑定
(concept) [编辑]
检查类型是否具有默认构造函数
(class template) [编辑]