std::default_initializable

来自cppreference.com
< cpp‎ | concepts
在标头 <concepts> 定义
template<class T >

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

                                /* T t; 为良构,见后述 */;
(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 Concept default_initializable [concept.default.init]
  • C++20 标准(ISO/IEC 14882:2020):
  • 18.4.12 Concept default_initializable [concept.default.init]

[编辑]参阅

指定该类型的变量能从一组实参类型进行构造,或绑定到一组实参类型
(概念)[编辑]
检查类型是否有默认构造函数
(类模板)[编辑]
close