2011-06-23 26 views
0

EDIT - 無視してください - 単純な誤字のまわりで解決された質問。一休みしたい。boost.fusionベクターの要素への参照

ブースト融合ベクターの要素への参照にアクセスするにはどうすればよいですか?

boost.tuplesのtuples::get<i>(variable)(参照を返します)とは異なり、fusion::at_c<i>(variable)は定数を返し、これが原因で問題が発生します。

以下は、私の問題あなただけfusion::at_c<0>(vec) = 2;を行うことはできません

#include <iostream> 
#include <boost/tuple/tuple.hpp> 
#include <boost/fusion/include/vector.hpp> 
#include <boost/fusion/include/at.hpp> 

using namespace boost; 
int 
main (int ac, char **av) 
{ 
    fusion::vector<int, char, std::string> vec(1, 'x', "howdy"); 
    tuples::tuple <int, char, std::string> tup(1, 'x', "howdy"); 
    std::cout<< fusion::at_c<0>(vec)<<std::endl; //outputs 1 
    std::cout<< tuples::get<0> (tup) <<std::endl; //outputs 1 
    //fusion::at<0>(vec) = 2; //doesn't compile 
    tuples::get<0>(tup) = 2; //works fine 
    std::cout<< fusion::at_c<0>(vec) <<std::endl; //can't make this output 2. 
    std::cout<< tuples::get<0> (tup) <<std::endl; //outputs 2 

} 

答えて

1

示して?

+0

doh!申し訳ありません、タイプミス! – Tom

関連する問題