C/C++ code:
#include <map>
using namespace std;
template<typename K, typename T>
class a
{
public:
map<K,T> _map;
T find(K v)
{
map<K,T>::iterator iter;
iter = _map.find(v);
if(iter != _map.end())
return iter->second;
else
return (T)0;
}
};
int main()
{
a<int, unsigned int> b;
return 0;
}
为什么这段代码在vc2005中可以编译通过,而在linux(red heat)下不能通过?
那是因为int和unsigned int在linux平台下没有区别。
模板的二义性。与编译器实现有关。
去掉a <int, unsigned int> b;这行也一样,与模板参数无关
test.cpp: In member function `T a <K, T>::find(K)':
test.cpp:11: error: expected `;' before "iter"
test.cpp:12: error: `iter' was not declared in this scope
red heat下编译报这个错
呃,google 模板参数依赖类型。
typename的功能没好好学吧。
加上 typename.
如下:
#include <map>
using namespace std;
template <typename K, typename T>
class a
{
public:
map <K,T> _map;
T find(K v)
{
typename map <K,T>::iterator iter;
相关问答:
需要在linux下用中断方式来写一个串口的程序,现在没有思路,网上有人说用select,signal,tasklet函数的,但是我没看懂,希望有做过的给一下例程,多谢!
就是能够当串口数据来临时自动通知串口读取数据,类似于中 ......
使用Struts2上传文件,在linux下报错
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......
cvs官方不能下载了,谁给我一份,最好有配置说明的文档。。。谢谢了
没有,帮顶一下。
官方不能下载 别的地方还有下载的地方 我刚才搜了
刚下载了个。。。是不是不到4M啊。。。cvs-1.12.13.1.tar.tar
linu ......
Linux不正常关机导致系统坏,请问怎么检查和修复系统?
在刚启动的时候会有提示的。
修复可以靠livecd
或者把基本系统部分重新安装即可
是不是系统编程了read-only的啦?无法往系统写入数据啊?
有的情 ......
问题是这样的,linux系统连接windows的FTP用的是什么端口,是不是随机的,可不可以给它固定某个端口,因为我防火墙打开的时候ftp连不上,防火墙关闭后,ftp可以连的上
咦 怎么没人帮忙解答呢
继续等待
......