模板元编程
- 递归非常耗内存,模板元可以对他优化
template<int N>
struct getResult
{
enum
{
res = getResult<N-1>::res + getResult<N-2>::res
};
};
template<>
struct getResult<1>
{
enum
{
res = 1
};
};
template<>
struct getResult<2>
{
enum
{
res = 1
};
};
递归用法
int getData(int num){
if (num == 1 && num == 2){
return 1;
}
else
{
return getData(num - 1) + getData(num - 2);
}
}
调用模板
int res = getResult<40>::res;
std::cout << res << std::endl;