引用boost.fusion矢量中的元素

问题描述

| 编辑-请忽略-有关简单拼写错误的问题已解决。我需要休息一下。 如何访问对Boost融合向量元素的引用? 与boost.tuples的
tuples::get<i>(variable)
(返回参考)不同,
fusion::at_c<i>(variable)
返回常数,这给我带来了麻烦。 以下说明了我的问题
#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,std::string> tup(1,\"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

}
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)