【发布时间】:2013-06-25 01:15:06
【问题描述】:
所以我试图想出一个函数来转换 a;
std::pair<T,std::pair<U, V>>
数据类型,变成std::tuple;
std::tuple<T,U,V>
它应该在一般情况下工作,具有任意数量的混合类型参数,对的格式是这样的;
- “汽车”始终是一种类型,
- “cdr”将始终是
std::pair,- 除了最里面的情况,“cdr”本身就是一个类型
(但是这可能是std::pair本身,因为类型是任意的)。
- 除了最里面的情况,“cdr”本身就是一个类型
我想要检索的参数的数量和类型是通过可变参数模板参数预先知道的。
我目前的进度有点低,我一直在尝试一些事情,但是我需要的代码似乎是这样的;
std::make_tuple(get<0>(pair), get<0>(get<1>(pair), get<0>(get<1>(get<1>(pair), ..., get<1>(pair)))));
但是我似乎无法找到自动生成它的方法,我尝试了 Sequence<int...> 方法,但没有运气,但我确实认为这是我需要考虑的事情,例如获得方法,它采用可变数量的索引,并使用这些索引多次查找,使用普通的 get 方法?
【问题讨论】:
标签: templates c++11 tuples std-pair stdtuple