1.模板元编程可以将部分执行期的任务提前至编译期完成,从而可以更早发现错误,更加高效(编译时间会变长,但是执行期的效率会更高)。
2.模板元编程是图灵完备的,可以执行分支语句和循环(通过递归实现)。如解决阶乘问题的代码:
template<unsigned n> //一般情况,递推关系式
struct Factorial{
enum{value = n * Factorial<n-1>::value};
};
template<> //特殊情况,以结束循环
struct Factorial<0>{
enum{value = 1};
};
int main()
{
std::cout<<Factorial<5>::value;
std::cout<<Factorial<10>::value;
}
3.设计模式优点的三个例子:
- (1)确保量度单位正确。
- (2)优化矩阵运算。
- PS:这一段最后一句话“戏剧性的提升”怀疑作者翻译不恰当,原文没有看,猜想是“dramatical”,一般翻译成“显著的”更恰当。
- (3)生成客户定制的设计模式。