《Effective C++》读书笔记之item48:认识template元编程

本文介绍了模板元编程的优势,包括提高效率、图灵完备性及解决阶乘问题的实例。此外,还列举了设计模式在确保量度单位正确、优化矩阵运算等方面的应用。

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)生成客户定制的设计模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值