4

boost::fusion ベクター内のタイプを識別するにはどうすればよいでしょうか?

例えば

fusion::vector<int, double, string> v;

次に、タイプとして、タイプとして、タイプとして識別v[0]できるもの。intv[1]doublev[2]string

ありがとう。

4

2 に答える 2

6

から要素を抽出するには、次のようboost::fusion::vectorに を使用する必要があります。boost::fusion::at_c

boost::fusion::vector<int, std::string> v(1, "hello");
std::cout << boost::fusion::at_c<0>(v) << std::endl; // prints 1

位置 N の型は次のとおりです。

boost::fusion::result_of::at_c<boost::fusion::vector<int, std::string>, 1>::type
于 2012-10-27T14:36:57.260 に答える
0

このリンクは、私がやろうとしていたことを説明しています。

詳細には、次のことを達成しようとしていました。

template<int N, typename T>
struct a_struct{
typedef typename T::value_type etype;
typedef typename boost::fusion::result_of::value_at<etype, boost::mpl::int_<N> >::type a_type;
};

ここで、T は boost::fusion ベクトルの std::vector です。

于 2012-10-27T14:34:05.513 に答える