18 Concepts library [concepts]

18.4 Language-related concepts [concepts.lang]

18.4.12 Concept default_­constructible [concept.defaultconstructible]

template<class T> inline constexpr bool is-default-initializable = see below; // exposition only template<class T> concept default_­constructible = 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.