template 的递归调用问题
来源:互联网 发布:linux 关闭tomcat命令 编辑:程序博客网 时间:2024/05/21 09:52
Fibonacci 的 template 使用:
1. Function Method
方法一:
下面这段代码会报错:template instantiation depth exceeds maximum of 1024 ....
template< int N >int fibonacci( ){ if ( N == 1 ) return 1; else if ( N == 2 ) return 1; else return N + fibonacci< N-1 >();}
方法二:
下面则正确
template< int N >int fibonacci( ){ return fibonacci< N -1 >() + fibonacci< N-2 >();}template< >int fibonacci< 2 >( ){ return 1;}template< >int fibonacci< 1 >( ){ return 1;}
为什么方法一编译会出错??
也许解释为:template为"编译期间"展开,而如果if语句的值判断在“运行期”才生效的话,那么编译器展开template时则没有==1 or ==2 的判断条件了!
- template 的递归调用问题
- 递归调用里的性能问题(js)
- flex template 的问题
- 函数递归调用问题
- 递归调用顺序问题
- 递归调用,汉诺塔问题
- 小问题,对递归重复调用的改进,一起来分享
- 小问题,对递归重复调用的改进,一起来分享
- 递归调用过多导致的栈溢出问题说明
- 递归、函数的调用机制及汉诺塔问题
- 【C语言的递归调用】汉罗塔问题心得
- hanoi塔问题—函数的递归调用
- js 递归调用无返回值的问题
- [python]关于迷宫问题与递归调用的一些tips
- 八皇后问题--递归调用
- 递归问题 --自己调用自己
- 分书问题,递归调用
- 汉诺塔问题与递归调用
- XSL-FO
- errno.h & errno-base.h
- Java对Excel的读取操作
- linux多线程博客
- js 给button按钮绑定enter键
- template 的递归调用问题
- javascript笔记1——js初步认识
- mount
- 传智博客毕向东老师java基础视频笔记——Day 01
- IDOC&ALE常用tcode
- 创建表空间
- ubuntu build 文件中提示source: not found
- 数据库导出导入流程
- 标准成本、目标成本、实际成本