C++ 模板元编程是一种函数式编程形式吗?如果是,那么像非尾递归的堆栈溢出等问题对于 C++ 模板元编程是否有关联?在 this question 的阶乘模板示例中,我猜它是标准的函数式编程。或者这种相似性只是表面上的?
#include <iostream>
using namespace std;
template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };
template<>
struct factorial< 0 > { enum { ret = 1 }; };
int main() {
cout << "7! = " << factorial< 7 >::ret << endl; // 5040
return 0;
}