问题描述
|
编辑-请忽略-有关简单拼写错误的问题已解决。我需要休息一下。
如何访问对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 (将#修改为@)