C++模板技术实例(1)

  1. // 定义递归方式
  2. template <unsigned n>
  3. struct fn {
  4.      enum {value = fn<n - 1>::value + fn<n - 2>::value};
  5. };
  6. // 模板特化, 当N=0时,value为1
  7. template <>
  8. struct fn<0> {
  9.      enum {value = 1};
  10. };
  11. // 模板特化,当N=1时,value为1
  12. template <>
  13. struct fn<1> {
  14.      enum {value = 1};
  15. };
  16. #include <iostream>
  17. int main()
  18. {
  19.     // 编译期间,模板递归展开,value的值在编译期间完成计算
  20.     std::cout << fn<10>::value << std::endl;
  21.     return 0;
  22. }

  上面贴了一则代码,用于演示模板展开时的强大计算功能,以往我们在学习数据结构时,算法代码在运行时执行,这里是不是感觉更有意思?

  欢迎进入功能强大的C++模板元编程技术的世界,我将会把收集到的资料,结合自己的调试和学习心得,写成帖子,欢迎大家给出自己的看法和意见,我们共同学习进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值