Namespaces
Variants

std:: default_initializable

From cppreference.net
헤더에 정의됨 <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 컨셉 default_initializable [concept.default.init]
  • C++20 표준(ISO/IEC 14882:2020):
  • 18.4.12 컨셉 default_initializable [concept.default.init]

참고 항목

해당 타입의 변수가 일련의 인수 타입들로부터 생성되거나 바인딩될 수 있음을 명시
(concept)
타입이 기본 생성자를 가지는지 여부를 검사
(class template)