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]

參閱

指定該類型的變量能從一組實參類型進行構造,或綁定到一組實參類型
(概念) [編輯]
檢查類型是否有默認構造函數
(類模板) [編輯]