我有一个关于划分元组的问题,正如标题所述。如何在C++中划分元组
事实上,我可以使用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;
}
以前有人问过类似的问题:https://stackoverflow.com/questions/8569567/get-part-of-stdtuple但是ecatmur的C + 17答案看起来更加简短。 – Swift
@Swift谢谢你,我会去看看。 – WangChu