2017-11-06 4 views
1

cppreference을 탐색 할 때 std::variant_size을 보았습니다. 왜 구조체 variant_size; C++ 17에서 정의되지 않았습니까?

template <class T> 
struct variant_size; /* undefined */ (1) (since C++17) 

내가 여기보고, struct variant_size;정의되지 않은로 선언합니다.

그래서 struct variant_size;을 정의하지 않은 이유는 무엇입니까?

+1

명시 적으로 지원되지 않는 항목에 사용하려고하면 오류가 발생합니다. – StoryTeller

답변

6

보고있는 부분은 variant_size에 대한 일반 선언입니다. variant_size의 실제 정의는 아래 정의 된 전문 입니다. 즉,

template <class... Types> 
struct variant_size<std::variant<Types...>> 
    : std::integral_constant<std::size_t, sizeof...(Types)> {}; 

그 아래 cv -qualifier 전문화.

관련 문제