自引用升压变体
Self-referencing boost variant
假设我有一个像这样的简单类型定义:
typedef boost::variant<int, double> Value;
但是,现在我希望变体也包含一个向量:
typedef boost::variant<int, double, std::vector<Value>> Value;
由于在定义变体时 Value 未知,因此编译将失败。关于如何做到这一点有什么建议吗?
当然可以。
typedef boost::make_recursive_variant<
int,
double,
std::vector<boost::recursive_variant_> >::type Value;
下的文档
假设我有一个像这样的简单类型定义:
typedef boost::variant<int, double> Value;
但是,现在我希望变体也包含一个向量:
typedef boost::variant<int, double, std::vector<Value>> Value;
由于在定义变体时 Value 未知,因此编译将失败。关于如何做到这一点有什么建议吗?
当然可以。
typedef boost::make_recursive_variant<
int,
double,
std::vector<boost::recursive_variant_> >::type Value;
下的文档