読者です 読者をやめる 読者になる 読者になる

可変引数テンプレートでの型リスト - concat

C++

2つの型リストを連結するメタ関数です。

template <class Seq1, class Seq2>
struct concat;

template <class... Seq1, class... Seq2>
struct concat<tuple<Seq1...>, tuple<Seq2...>> {
    typedef tuple<Seq1..., Seq2...> type;
};
concat<tuple<int, double>, tuple<long, char>>::type
→ tuple<int, double, long, char>