下面的程序在不使用任何循环、运行时递归或库函数 [pow] 的情况下计算 2 的 n 次幂。
它使用模板元编程技术。
#include <iostream>
using namespace std;
template<int n> struct funStruct
{
enum { val = 2*funStruct<n-1>::val };
};
template<> struct funStruct<0>
{
enum { val = 1 };
};
int main()
{
cout << funStruct<8>::val << endl;
return 0;
}
我在徘徊,我可以使用功能代替结构吗?