std:: default_initializable
|
헤더에 정의됨
<concepts>
|
||
|
template
<
class
T
>
concept default_initializable
=
std::
constructible_from
<
T
>
&&
requires
{
T
{
}
;
}
&&
|
(C++20부터) | |
default_initializable
개념은
T
타입의 변수들이
- 값 초기화 (즉, T ( ) 가 올바른 형식인지 여부);
- 직접 목록 초기화 (빈 초기화 목록으로부터, 즉 T { } 가 올바른 형식인지 여부); 그리고
- 기본 초기화 (즉, T 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]
-
18.4.12 컨셉
- C++20 표준(ISO/IEC 14882:2020):
-
-
18.4.12 컨셉
default_initializable[concept.default.init]
-
18.4.12 컨셉
참고 항목
|
(C++20)
|
해당 타입의 변수가 일련의 인수 타입들로부터 생성되거나 바인딩될 수 있음을 명시
(concept) |
|
(C++11)
(C++11)
(C++11)
|
타입이 기본 생성자를 가지는지 여부를 검사
(class template) |