error C2998:不能是模板定义的错误解决
作者:朱金灿
来源:http://blog.csdn.net/clever101
在一个非模板类中定义了一个模板函数,如下:
template<typename T>
bool HDF5_ReadData(int32 dset,hsize_t* offset,hsize_t* count,hid_t space,hid_t memspace,hid_t memtype,
long lWidth,double dfSrcX,double dfSrcXInc, size_t iSrcOffsetCst,size_t iBufOffset,void* pvBuffer,
GDALDataType inDataType,GDALDataType outDataType,long lBuffSize);
在编译时出现一堆错误:
1>e:\cskimagedataset.h(42) : error C2998: “bool HDF5_ReadData”: 不能是模板定义
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\sys\stat.inl(56) : error C3861: “_fstat64i32”: 找不到标识符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\sys\stat.inl(61) : error C2661: “_stat64i32::_stat64i32”: 没有重载函数接受2 个参数
1>e:\src\thirdpartylib\gdal_1_10_1_vc9\include\cpl_vsi.h(103) : error C2989: “stat”: 类模板已经声明为非类模板
这个函数的代码是我从别处拷贝过来的。开始我百思不得其解,后来上网查找资料,找到这样一句话:在template语句与函数模板定义语句之间不允许有别的语句,如
template<class T>
int i; // 错误,不允许插入别的语句
T max(T x,T y)
我想是不是因为函数参数中已经插入了类型定义呢?我试着把函数的第一个参数从int32 dset改为int dset,结果是编译错误全部消失,我猜测原因在某个头文件中使用了
typedef int int32;
这等于在template语句与函数模板定义了int32类型导致出现了编译错误。
参考文献:
1.模板使用中注意的问题 template<class T>
error C2998:不能是模板定义的错误解决的更多相关文章
- Error: Chunk.entry was removed. Use hasRuntime()错误解决
Error: Chunk.entry was removed. Use hasRuntime()错误解决 执行如下命令 npm uninstall --save-dev ext ...
- “Error:(1, 1) java: 非法字符: '\ufeff'”错误解决办法
原因 用Windows记事本打开并修改.java文件保存后重新编译运行项目出现“Error:(1, 1) java: 非法字符: '\ufeff'”错误,如下图所示: 原来这是因为Window ...
- Error detected while processing function pythoncomplete#Complete: 错误解决
python vim 环境配置好后,莫名奇妙总是出现:Error detected while processing function pythoncomplete#Complete: 恼人的错误,多 ...
- Error:Execution failed for task ':app:preDebugAndroidTestBuild'.错误解决
在新建布局文件的时候,页面显示: design editor is unavailable until a successful build(设计编辑器不可用,直到成功创建.) 细看下面还有一行错误: ...
- sudo rosdep init 出现 ERROR: cannot download default sources list from:错误解决方法
关于安装ROS时出现的rosdep init错误 sudo rosdep init ERROR: cannot download default sources list from: https:// ...
- 【Unity Shader】syntax error: unexpected token 'struct' at line x 错误解决办法
以下代码处出现了syntax error: unexpected token 'struct' at line 33的错误 struct a2v { float4 vertex_position : ...
- Error staring Tomcat Cannot connect to VM错误解决办法
最近经常遇myEclipse以debug方式启动tomcat的错误提示如下: 直接run方式启动没有问题. 一般这个问题等一会就不再出现,如果有耐心的话,就等几分钟再启动.如果没有耐心,可以试试下面的 ...
- 【XS128】Link error L1822 symbol _FADD / _FSUB/ _FDIV/ _FMUL.....错误解决的方法
转载请注明出处 因为阅历有限,篇幅不周之处还望指出,谢谢 假设方法确实奏效,请一定回复点赞哦,给后来人也是一种帮助,谢谢! 这是飞思卡尔 XS128平台比較常见的LINK错误. 可是要解决起来也比較头 ...
- phpmailer SMTP Error: Could not connect to SMTP host. 错误解决
今天发邮件遇到了这么一个问题:SMTP Error: Could not connect to SMTP host.在网上找了好多,都不管用.在这里我要提醒大家下 1.确保发送者邮箱密码正确,代码编写 ...
随机推荐
- es 修改拼音分词器源码实现汉字/拼音/简拼混合搜索时同音字不匹配
[版权声明]:本文章由danvid发布于http://danvid.cnblogs.com/,如需转载或部分使用请注明出处 在业务中经常会用到拼音匹配查询,大家都会用到拼音分词器,但是拼音分词器匹配的 ...
- linux安装mysql数据库和简单配置
- Cookies与session的区别
Cookies 机制 Cookies是服务器在本地机器上存储的一段文本,并随每一个请求发送至同一个服务器. IETF RFC2965 HTTP State Management Mechanism 是 ...
- Python中的 // 与 / 的区别
" / " 表示浮点数除法,返回浮点结果;" // " 表示整数除法,返回不大于结果的一个最大的整数 [code] print("6 // 4 = & ...
- [原创]Entity Framework查询原理
前言 Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架.Ent ...
- 【Java初探外篇02】——关于静态方法与实例方法
在Java的学习中,我们知道,方法的使用是不可或缺的重要部分,在我们编写第一个Java程序hello world的时候,我们就要开始使用主方法main():它就是一个静态方法(static metho ...
- Nhibernate + MySQL 类型映射
用SQLyog工具创建表 然后用自动映射工具NHibernate Mapping Generator对表做自动映射,得到 这个是可视化界面,后面有对应的代码. using System; using ...
- 【详解】核心组件之UserDetailService
简介 UserDetails => Spring Security基础接口,包含某个用户的账号,密码,权限,状态(是否锁定)等信息.只有getter方法. Authentication => ...
- LVS+keepalived+nginx+tomcat部署实现
拓扑如下所示 # 节点分布情况 LVS-dr-master eth0: 192.168.146.141 LVS-dr-slave eth0: 192.168.146.142 nginx1: eth0: ...
- 解析Resources.arsc
一.前言 对于APK里面的Resources.arsc文件大家应该都知道是干什么的(不知道的请看我的另一篇文章Android应用程序资源文件的编译和打包原理),它实际上就是App的资源索引表.下面我会 ...