【发布时间】:2019-04-29 09:01:24
【问题描述】:
我正在尝试制作一个可以包含相同变体向量的 std::variant:
class ScriptParameter;
using ScriptParameter = std::variant<bool, int, double, std::string, std::vector<ScriptParameter> >;
我正在重新定义 ScriptParameter。它认为可能是因为模板参数无法前向声明?
有没有办法实现一个变体,它也可以包含一组相同类型的变体?
【问题讨论】:
-
这听起来更像是您设计中的一个更普遍的缺陷。你真正想达到什么目标?
-
我认为 C++ 不支持先有鸡还是先有蛋的模式。
-
看起来像是命名冲突?您期望编译器将
ScriptParameter理解为什么?类型,还是前向声明的类? -
@Jodocus 看起来他正在制作一个复合模式节点。我真的很喜欢这个主意。
标签: c++ vector c++17 self-reference std-variant