18 Concepts library [concepts]

18.4 Language-related concepts [concepts.lang]

18.4.12 Concept default_­initializable [concept.default.init]

template<class T> constexpr bool is-default-initializable = see below; // exposition only template<class T> concept default_­initializable = constructible_­from<T> && requires { T{}; } && is-default-initializable<T>;
For a type T, is-default-initializable<T> is true if and only if the variable definition T t; is well-formed for some invented variable t; otherwise it is false.
Access checking is performed as if in a context unrelated to T.
Only the validity of the immediate context of the variable initialization is considered.