c++ - 为什么 struct variant_size;在 C++17 中未定义?

标签 c++ c++17 variant

浏览时我看到了std::variant_size cppreference .

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

我在这里看到,struct variant_size;声明为undefined

那么,声明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-限定符特化。

关于c++ - 为什么 struct variant_size;在 C++17 中未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47131092/

相关文章:

c++ - Mac OSX 的 c++ 中的变体类型结构 (oaidl.h)?

android - OpenCV 未定义对 cv::SURF::SURF() eclipse 的引用

c++ - 不可变数据结构还是 const 变量?

c++ - 如果函数重载,Boost phoenix 成员函数运算符将无法编译

c++ - 在 std::any 的 std::vector 中找到一个元素

c++ - 为什么按值传递的数组上的 std::size 不起作用?

c++ - 具有自动功能的 C++17 模板参数是否允许受约束的 std::function 对象?

android.mk sdl 构建错误

c++ - 为什么模板化非常量参数构造函数优于给定的复制构造函数

c++ - 如何将此 C++ 类型列表构建为变体?