我已经了解到c ++ 17中有std::variant类型。 看起来变体容器不支持预定义的数据类型,但是对于每种变体类型,用户可以定义自己的数据类型集。
std::variant<int, float> v;
我想知道,类型列表可以多长时间?库是否具有用于Aleksandrescu方式的最大参数数量的预定义模板,或者是编译器支持的变体,类型的数量不受限制?
答案 0 :(得分:5)
模板参数的最大数量受编译器实现的限制。
由于计算机是有限的,因此C ++实现不可避免地受到程序大小的限制 可以成功处理。每个实施都应记录已知的限制。这个文件 心理可以引用它们存在的固定限制,说明如何计算可变限值作为可用的函数 资源,或说固定限制不存在或未知。
限制可能会限制包含下述数量或其他数量的数量。 括号中的数字 建议将每个数量作为该数量的最小值。但是,这些数量是 仅指导方针,不确定合规性。
...
模板声明中的模板参数[1024]