タプルを分割することについての質問は、タイトルのとおりです。C++でタプルを分割する方法
実際、std::index_sequence
を使用してコードを作成できますが、コードは醜いです。
これを達成するためのエレガントな方法はありますか?
ここに、私が意味するものを示すいくつかのコードがあります。あなたがC++ 17対応のコンパイラを使用している場合
#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