//求 a ^ b
template <int a, int b> class A
{
public:
enum{val = a * A<a, b - 1>::val};
};
template <int a> class A<a, 0>
{
public:
enum{val = 1};
};
//求a!
template <int a> class B
{
public:
enum{val = a * B<a - 1>::val};
};
template <> class B<0>
{
public:
enum{val = 1};
};
int main()
{
cout<<A<5, 4>::val<<endl;
cout<<B<5>::val<<endl;
return 0;
}
一例胜千言~
入门学习,猛击我