模板元编程神奇的东西.....
真体现了图灵完备性
代码
/************************************************************************/
/* 模板元编程
/************************************************************************/
#include "stdafx.h"
#include <iostream>
using namespace std;
//原始摸板
template<int Base, int Exponent>
class XY
{
public:
enum { result_ = Base * XY<Base, Exponent-1>::result_ };
};
//用于终结递归的局部特化版
template<int Base>
class XY<Base, 0>
{
public:
enum { result_ = 1 };
};
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "X^Y<5, 4>::result_ = " << XY<5, 4>::result_;
getchar();
return 0;
}
/* 模板元编程
/************************************************************************/
#include "stdafx.h"
#include <iostream>
using namespace std;
//原始摸板
template<int Base, int Exponent>
class XY
{
public:
enum { result_ = Base * XY<Base, Exponent-1>::result_ };
};
//用于终结递归的局部特化版
template<int Base>
class XY<Base, 0>
{
public:
enum { result_ = 1 };
};
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "X^Y<5, 4>::result_ = " << XY<5, 4>::result_;
getchar();
return 0;
}