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.确保发送者邮箱密码正确,代码编写 ...
随机推荐
- 初识SQL语句
SQL(Structured Query Language ) 即结构化查询语言 SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开发.SQL语言分为3种类型: ...
- spring boot 中使用swagger 来自动生成接口文档
1.依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swa ...
- swiper4-vue 不使用loop,由最后一张跳到第一张
<template> <div class="swiper-box"> <div class="swiper-container" ...
- 字符串编码C#
给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”.比如字符串AAAABCCDAA会被编码成4A1B2C1D2A. 输入描述: 每个测试输入包含1个测试用例 每个测试用例 ...
- (转)详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
原文:https://www.jb51.net/article/138363.htm hasattr()函数 hasattr()函数用于判断是否包含对应的属性 语法: hasattr(object,n ...
- let'encript 解决证书问题
今天服务器let'encript证书过期了,年纪大了老忘,不得不把别人的博客看一遍,就是因为我不想定时任务执行acme_tiny.py,还是写个文档记下,很久不写对外博客了,冒个泡. 1.创建普通域名 ...
- error C4996: 'scanf': This function or variable may be unsafe.
项目属性-配置属性-c/c++-预处理器- 在下面的编辑窗口中添加一句命令:_CRT_SECURE_NO_WARNINGS 添加完成后应用并退出 http://jingyan.baidu.com/al ...
- Android_EditText 密码框默认是小圆点 怎么改成其它的(*)?
text.setTransformationMethod(new AsteriskPasswordTransformationMethod()); public class AsteriskPassw ...
- UTF-8和GBK编码的区别
UTF-8:对英文使用8位(一个字节).中文使用24位(三个字节)编码.对于英文字符比较多的网站一般用utf-8来编码以节省空间:包含全世界所有国家需要用到的字符,其编码的蚊子可以在各国各种支持utf ...
- php使用 utf8_encode 来将特殊字符转成 utf8
如果在接受 $_POST 或 $_GET 时发生类似的错误报告:SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF6te ...