模板元编程之所以能够优化一些计算,是因为她的输入参数完全确定,在编译期间编译器就能够将结果计算出来,与传统的运行时计算相比,将运行时间分摊给了编译时间,从而优化运行速率
模板元编程可以拓展运用到平方根,阶乘,最大公约数,矩阵求逆或排序等等函数中,只要在编译期间能够获知部分输入参数的算法,都可以采用模板元编程优化,将运行时间分摊到编译中去。
template<unsigned N>- struct Fib
- {
- enum
- {
- Val = Fib< N-1 >::Val + Fib<N-2>::Val