この記事はC++ Advent Calendar 2012の13日目です。 Variadic Templatesとは C++11ではテンプレートで"."を3つ付けることが出来るようになりました、 こんな感じで。 template <class... Ts> これで何が出来るのかというと、0個以上の任意のテンプレート引数を受け取れるようになります。このとき、Tsをテンプレートパックと呼びます。 Variadic Templateはテンプレートクラスと関数テンプレートの両方で使うことが出来ます。 テンプレートクラスの場合 template <class... Ts> class hoge; このように書かかれていれば、 hoge<> hoge< long > hoge< int, short > こんな感じで型を渡すことができるようになります。 また、class...のように型だけでなくint