| Defined in header <concepts> | ||
|---|---|---|
| template < class T >
concept default_initializable = std::constructible_from<T> && requires { T{}; } && 
                                /* T t; is well-formed, see below */; | (since C++20) | 
The default_initializable concept checks whether variables of type T can be.
T() is well-formed); T{} is well-formed); and T t; is well-formed). 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.
| template<class T>
concept default_initializable =
    std::constructible_from<T> &&
    requires { T{}; } &&
    requires { ::new T; }; | 
| (C++20) | specifies that a variable of the type can be constructed from or bound to a set of argument types (concept) | 
| (C++11)(C++11)(C++11) | checks if a type has a default constructor (class template) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    https://en.cppreference.com/w/cpp/concepts/default_initializable