可変個引数テンプレートをいじろうとしているのですが、何らかの理由で私の脳が麻痺してしまいました。
コンパイル時に変数を合計するクラスを作成しようとしていますが、停止条件を正しく作成できません..次のようにしようとしました:..しかし、コンパイルされません。
#include <iostream>
#include <type_traits>
using namespace std;
template<size_t Head, size_t ...Rest>
struct Sum
{
static const size_t value = Head + Sum<Rest...>::value;
static void Print() {
cout << value;
}
};
template<>
struct Sum
{
static const size_t value = 0;
};
int _tmain(int argc, _TCHAR* argv[])
{
Sum<5,5,5>::Print();
return 0;
}