代码之家  ›  专栏  ›  技术社区  ›  Jayesh

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

  •  1
  • Jayesh  · 技术社区  · 8 年前

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

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

    我在这里看到, struct variant_size; 声明为 未定义 .

    那么,申报的理由是什么 结构变量大小; 未定义?

    1 回复  |  直到 8 年前
        1
  •  6
  •   mpark    8 年前

    您正在查看的部分是 variant_size . 实际定义 是专业 定义如下。即

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

    cv -低于该值的限定符专门化。