error C2783: 无法为“T”推导 模板 参数
原则:“模板参数推导机制无法推导函数的返回值类型”
版本一:
// 缺少<T> 参数 int n 对比第三个版本( 缺少<T> 参数 T n) !
编译错误提示:
错误 1 error C2783: “T FibRecursion(int)”: 无法为“T”推导 模板 参数 c:\users\yi\documents\visual studio 2005\projects\斐波纳契数列\斐波纳契数列\斐波纳契数列.cpp 16
#include "stdafx.h"
#include <iostream> template<class T>
T FibRecursion(int n) // 参数 int n
{
if (n<)
return -; if (n == || n == )
return ; return FibRecursion(n-) + FibRecursion(n-); // 缺少<T>
}
int _tmain(int argc, _TCHAR* argv[])
{
int result = FibRecursion<int>(); //错误行
system("pause");
return ;
}
版本二:
// 加上<T> 参数 int n 或者 T n
编译通过!
#include "stdafx.h"
#include <iostream> template<class T>
T FibRecursion(int n) // 参数 int n
{
if (n<)
return -; if (n == || n == )
return ; return FibRecursion<T>(n-) + FibRecursion<T>(n-); // 加上<T>
}
int _tmain(int argc, _TCHAR* argv[])
{
int result = FibRecursion<int>(); //没有报错
system("pause");
return ;
}
#include "stdafx.h"
#include <iostream> template<class T>
T FibRecursion(T n) // 参数 T n
{
if (n<)
return -; if (n == || n == )
return ; return FibRecursion<T>(n-) + FibRecursion<T>(n-); // 加上<T>
}
int _tmain(int argc, _TCHAR* argv[])
{
int result = FibRecursion<int>(); //没有报错
system("pause");
return ;
}
版本三:
// 缺少<T> 参数 T n
编译通过!
#include "stdafx.h"
#include <iostream> template<class T>
T FibRecursion(T n) // 参数 T n
{
if (n<)
return -; if (n == || n == )
return ; return FibRecursion(n-) + FibRecursion(n-); // 缺少<T>
}
int _tmain(int argc, _TCHAR* argv[])
{
int result = FibRecursion<int>(); //没有报错
system("pause");
return ;
}
http://bbs.sjtu.edu.cn/bbstcon,board,C,reid,1293357257.html 没看懂,囧!
error C2783: 无法为“T”推导 模板 参数的更多相关文章
- c++特性:指向类成员的指针和非类型类模板参数和函数指针返回值 参数推导机制和关联型别
一.c++允许定义指向类成员的指针,包括类函数成员指针和类数据成员指针 格式如下: class A { public: void func(){printf("This is a funct ...
- C++11 图说VS2013下的引用叠加规则和模板参数类型推导规则
背景: 最近在学习C++STL,出于偶然,在C++Reference上看到了vector下的emplace_back函数,不想由此引发了一系列的“探索”,于是就有了现在这篇博文. 前言: ...
- C++17尝鲜:类模板中的模板参数自动推导
模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模板参数那样被自动推导的,比如我们无法写 std::pair a{1, "a"s}; // C++17 ...
- c++11-17 模板核心知识(五)—— 理解模板参数推导规则
Case 1 : ParamType是一个指针或者引用,但不是universal reference T& const T& T* Case 2 : ParamType是Univers ...
- 零值初始化&字符串常数作为函数模板参数
1.在定义一个局部变量时,并希望该局部变量的初始化一个值,可以显示调用其默认构造函数,使其值为0(bool类型默认值为false). template <typename T> void ...
- 从零开始学C++之模板(三):缺省模板参数(借助标准模板容器实现Stack模板)、成员模板、关键字typename
一.缺省模板参数 回顾前面的文章,都是自己管理stack的内存,无论是链栈还是数组栈,能否借助标准模板容器管理呢?答案是肯定的,只需要多传一个模板参数即可,而且模板参数还可以是缺省的,如下: temp ...
- 缺省模板参数(借助标准模板容器实现Stack模板)、成员模板、关键字typename
一.缺省模板参数 回顾前面的文章,都是自己管理stack的内存,无论是链栈还是数组栈,能否借助标准模板容器管理呢?答案是肯定的,只需要多传一个模板参数即可,而且模板参数还可以是缺省的,如下: temp ...
- C++非类型模板参数
对于函数模板与类模板,模板参数并不局限于类型,普通值也可以作为模板参数.在基于类型参数的模板中,你定义了一些具体的细节来加以确定代码,直到代码被调用时这些细节才被真正的确定.但是在这里,我们面对的是这 ...
- C++ Template之非类型模板参数
非类型模板参数是通过基本变量类型引入,例如int,在使用时必须显式自定值,不能通过推断. 非类型模板参数的限制:不能是浮点数(在vc6.0上测试可以为浮点型),对象以及指向内部链接对象的指针. #in ...
随机推荐
- java关于StringBuffer和StringBuilder写入文件的效率问题
StringBuffer在存储字符的时候,是有上限的,一旦达到上线就会出错,自己在项目中遇到一个从数据库中查询数据,然后写入到本地文件中 ,数据量大概有30万条,此时的效率十分的低.下面是大致的模拟该 ...
- php cli模式学习(PHP命令行模式)
http://www.jb51.net/article/37796.htm php_cli模式简介 php-cli是php Command Line Interface的简称,如同它名字的意思,就是 ...
- CentOS安装solr 4.10.3
Solr是什么? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...
- Intent官方教程(3)各属性介绍
Building an Intent An Intent object carries information that the Android system uses to determine wh ...
- 【Java】聊聊常用的摘要算法,比如MD5
摘要算法的特性 摘要算法的目的的将信息进行简单地摘要,将任意长的信息摘要成固定长的信息.比如MD5,将任意长的信息摘要成128位的摘要. 不可逆的,将报文摘要成一段信息后,无法通过摘要信息还原会报文. ...
- [cdoj1380] Xiper的奇妙历险(3) (八数码问题 bfs + 预处理)
快要NOIP 2016 了,现在已经停课集训了.计划用10天来复习以前学习过的所有内容.首先就是搜索. 八数码是一道很经典的搜索题,普通的bfs就可求出.为了优化效率,我曾经用过康托展开来优化空间,甚 ...
- QT笔记之实现阴影窗口
方法一: 代码实现 在窗口构造函数中加入:setAttribute(Qt::WA_TranslucentBackground),保证不被绘制上的部分透明 重写void paintEvent(QPain ...
- 在centos6.3用yum安装redis
一.centos默认的安装源在官方centos.org上,而redis在第三方的yum源里,所以无法安装,非官方的yum推荐用fedora的epel仓库.当然也可通过配置 /etc/yum.repos ...
- 《微信开发日志》之OAuth2验证接口
OAuth2接口说明: 企业应用中的URL链接(包括自定义菜单或者消息中的链接),可以通过OAuth2.0验证接口来获取员工的身份信息. 通过此接口获取用户身份会有一定的时间开销.对于频繁获取用户身份 ...
- Entity Framework 不支持DefaultValue
http://stackoverflow.com/questions/18506088/entityframework-not-updating-column-with-default-value Y ...