为什么结构 variant_size;在 C++17 中未定义?
Why does struct variant_size; undefined in C++17?
浏览cppreference时看到std::variant_size
。
template <class T>
struct variant_size; /* undefined */ (1) (since C++17)
我看到这里,struct variant_size;
声明为未定义。
那么,声明struct variant_size;
未定义的原因是什么?
您正在查看的部分是 variant_size
的通用声明。
variant_size
的实际定义是特化
定义如下。即,
template <class... Types>
struct variant_size<std::variant<Types...>>
: std::integral_constant<std::size_t, sizeof...(Types)> {};
和下面的 cv
-限定符专业化。
浏览cppreference时看到std::variant_size
。
template <class T>
struct variant_size; /* undefined */ (1) (since C++17)
我看到这里,struct variant_size;
声明为未定义。
那么,声明struct variant_size;
未定义的原因是什么?
您正在查看的部分是 variant_size
的通用声明。
variant_size
的实际定义是特化
定义如下。即,
template <class... Types>
struct variant_size<std::variant<Types...>>
: std::integral_constant<std::size_t, sizeof...(Types)> {};
和下面的 cv
-限定符专业化。