【发布时间】:2013-04-28 02:31:03
【问题描述】:
通常我会通过以下方式访问常规元组元素(比如 0)
mytuple->get<0>();
但是,如果元组是 boost::fusion::tuple 类型,我如何访问第 0 个元素
更多详情
我有这样的事情
typedef boost::fusion::tuple<double,double,double,std::string,double,double,int,
double,double,double,double,int,
double,double,double,double,double,
double,double,double,double,double,
double,double,double,double> tuple_def;
typedef boost::shared_ptr<tuple_def> my_tuple_def;
现在我使用如下
shared_tuple_def btuple = boost::make_shared<tuple_def>(boost::fusion::make_tuple(323,0,0,"A",0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0));
如何访问第 0 个元素,即 323?
【问题讨论】:
-
我敢问 tuple_def 究竟是什么意思吗?它就像一大堆双打和其他一些随机片段,似乎是使用结构而不是元组的好候选。
-
最初只有 5 个元素,直到增加到这么多。我最终会将其转换为结构。
tuple_def是第一个类型的 def。第一个 typedef 在下一条语句中使用 -
我想这就是我几乎完全避免使用元组的原因——它从 5 个元素开始,接下来你知道它是 25 个元素并且很难修复。 :)
标签: c++ boost tuples boost-fusion