std::default_initializable - cppreference.com

std::default_initializable

来自cppreference.com
在标头 <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]

参阅