home | help
std::default_initializable(3)  C++ Standard Libary std::default_initializable(3)

NAME
     std::default_initializable - std::default_initializable

Synopsis
	Defined in header <concepts>
	template< class T >

	concept    default_initializable    =	 std::constructible_from<T>   &&
     (since C++20)
	requires { T{}; } &&

					/* T t; is well-formed, see below */;

	The default_initializable concept checks whether variables of type T can
     be

	  * value-initialized (T() is well-formed);
	  * direct-list-initialized from an empty initializer list (T{} is well-
     formed); and
	  * default-initialized (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.

Possible implementation
	template<class T>
	concept default_initializable =
	    std::constructible_from<T> &&
	    requires { T{}; } &&
	    requires { ::new T; };

See also
					   specifies that a variable of the type
     can be
	constructible_from		   constructed from or bound to a set of
     argument
	(C++20) 			   types
					   (concept)
	is_default_constructible
	is_trivially_default_constructible
	is_nothrow_default_constructible   checks if a type has a  default  con-
     structor
	(C++11) 			   (class template)
	(C++11)
	(C++11)

http://cppreference.com 	   2024.06.10	   std::default_initializable(3)

home | help