代码之家  ›  专栏  ›  技术社区  ›  Valentin H

std::variant可以定义多少类型?

  •  7
  • Valentin H  · 技术社区  · 8 年前

    std::variant 输入c++17。

    std::variant<int, float> v;
    

    我想知道,类型列表可以有多长?该库是否以Aleksandrescu方式为最大数量的参数预定义了模板,或者编译器是否支持该变量,并且类型的数量不受限制?

    1 回复  |  直到 8 年前
        1
  •  7
  •   Maxim Egorushkin    8 年前

    模板参数的最大数目受编译器实现的限制。

    The C++ standard says :

    由于计算机是有限的,C++实现不可避免地受到其程序大小的限制 可以成功处理。每个实施都应记录这些已知的限制。本文档 心理状态可能会引用存在固定极限的地方,比如如何计算可变极限作为可用极限的函数 资源,或者说固定限制不存在或未知。

    这些限制可能会限制数量,包括以下描述的数量或其他数量。 括号内的数字 以下每种数量建议为该数量的最低数量。然而,这些数量是 仅指导原则,不确定合规性。

    ...

    模板声明中的模板参数[1024]