所以我试图想出一个转换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 方法,它需要一个变量索引的数量,并使用这些来查找多次,使用普通的 get 方法?