sumは、整数値の可変引数テンプレートのパラメータパックを合計するメタ関数です。
template <int... Args> struct sum; template <int Head, int... Tail> struct sum<Head, Tail...> { static const int value = Head + sum<Tail...>::value; }; template <> struct sum<> { static const int value = 0; };
sum<1, 2, 3, 4, 5>::value → 15