#include <iostream>
using namespace std;
template<int n> struct sum
{
enum value
{
N = sum<n-1>::N + n
};
};
template<> struct sum<1>
{
enum value
{
N = 1
};
};
void main()
{
cout << sum<10>::N<<endl;
}
//要求输入的n是编译期间就能确定下来的,不能是动态输入。编译器对递归编译代码有深度限制,n不能太大。。