2013-08-27 3 views
1

Я хотел бы получить базовый тип варианта. Например, "что-то похожее на это:?Как получить i-й базовый тип (по целочисленному const) of af boost :: variant

typedef boost::variant< shared_ptr<int> , shared_ptr<float> > VType; 

typedef VType::get<0>::type TYPE1;  // TYPE1 = shared_ptr<int> 

TYPE1 value = new std::remove_pointer<TYPE1>::type() // make a new shared_ptr<int> 

Любые идеи, как добиться этого с усилением

ответ

3

variant содержит MPLsequence называется types, который можно использовать для доступа к типы

#include <boost/mpl/at.hpp> 

typedef typename boost::mpl::at_c<VType::types, 0>::type TYPE1; 
.

 Смежные вопросы

  • Нет связанных вопросов^_^