假设我通过宏扩展定义了1.1 2.2 3.3
4.4 5.5
6.6 7.7 8.8
9.9
类。我想注册每个类,然后为n
生成boost :: variant之类的
n = 2
我看到我可以使用它:
// GeneratedClass_0 generated by macro
// GeneratedClass_1 generated by macro
boost::variant<GeneratedClass_0, GeneratedClass_1> v_class;
但是,即使我看不到列表,每个编译器也不支持using namespace boost;
typedef mpl::vector< GeneratedClass_0 > DefaultTypes;
typedef mpl::push_front< DefaultTypes, GeneratedClass_1 >::type ExtendedTypes;
typedef boost::make_variant_over< ExtendedTypes >::type v_class;
。