C++ 模板问题
#include <iostream>using namespace std;
template<int N> struct factorial;
template<> struct factorial<1> { enum { value = 1 }; };
template<int N> struct factorial{ enum { value = N*factorial<N-1>::value }; };
int main(int argc, char* argv[])
{
cout << factorial<6>::value << endl;
return 0;
}
说一下三个template分别做了什么,谢谢了。
意思是做一个递归,计算1*2*....n。