Расширить Boost :: вариант через макрос - PullRequest
0 голосов
/ 28 июня 2018

Предположим, я определяю n классы через расширение макроса. Я хотел бы зарегистрировать каждый класс, а затем сгенерировать для 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;

Однако make_variant_over не поддерживается в каждом компиляторе, даже если я не вижу список.

...