Alo*_*lon 7 c++ metaprogramming variadic-templates
尝试使用可变参数模板,但由于某种原因,我的大脑已经麻木了.
我试图在编译时创建一个类来总结变量,但不能正确创建停止条件..我试着这样:...但它不编译,快速帮助任何人?
#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;
}
Run Code Online (Sandbox Code Playgroud)
您需要先声明基本模板.你只是真正宣布了你将使用的两个专业.
template<size_t...> struct Sum;
template<size_t Head, size_t ...Rest>
struct Sum<Head, Rest...>
{
static const size_t value = Head + Sum<Rest...>::value;
static void Print() {
cout << value;
}
};
template<>
struct Sum<>
{
static const size_t value = 0;
};
Run Code Online (Sandbox Code Playgroud)