【发布时间】:2017-08-03 07:59:54
【问题描述】:
正如标题所说,我有一个关于划分元组的问题。
其实我可以用std::index_sequence来做,但是代码看起来很难看。
有没有优雅的方法来完成这个?
这里有一些代码来说明我的意思。
#include<tuple>
using namespace std;
template<typename THead, typename ...TTails>
void foo(tuple<THead, TTails...> tpl)
{
tuple<THead> tpl_h { get<0>(tpl) };
tuple<TTails...> tpl_t { /* an elegent way? */ }
do_sth(tpl_h, tpl_t);
}
int main()
{
foo(make_tuple(1, 2.0f, 'c'));
return 0;
}
【问题讨论】:
-
之前有人问过类似的问题:stackoverflow.com/questions/8569567/get-part-of-stdtuple 但 ecatmur 的 C+17 回答看起来要短得多。
-
@Swift 谢谢,我去看看。