模板元编程

/*
第12题
题目:求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。

思路:模板元编程,最快捷的计算方式,编译期完成计算
*/

C/C++ code
    
    
    
    


#include
< iostream >

using namespace std;

template
< int N >
struct CalCls
{
enum {sum = CalCls < N - 1 > ::sum + N};
};

template
<>
struct CalCls < 0 >
{
enum {sum = 0 };
};


int main()
{
cout
<< " 1+2+3+...+100 = " << CalCls < 100 > ::sum << endl;
return 0 ;
}

你可能感兴趣的:(模板元编程)