在linux下编译一程序出错,但在VC++6.0中却正常。
错误报告如下:
-
2.cpp: 在函数‘void display_vector(const std::vector<elemType>&, std::ostream&, int)’中:
-
2.cpp:24:2: 错误: ‘std::vector<elemType>::const_iterator’之前需要‘typename’,因为‘std::vector<elemType>’是一个有依赖的作用域
-
2.cpp:25:3: 错误: expected ‘;’ before ‘iter’
-
2.cpp:26:3: 错误: ‘end_it’在此作用域中尚未声明
-
2.cpp:28:17: 错误: expected primary-expression before ‘;’ token
-
2.cpp:29:10: 错误: ‘iter’在此作用域中尚未声明
-
……
源代码24,25,26行:
-
vector<elemType>::const_iterator
-
iter = vec.begin(),
-
end_it = vec.end();
根据错误提示,加上typename后OK,即代码改为:
-
typename vector<elemType>::const_iterator
-
iter = vec.begin(),
-
end_it = vec.end();
C++中的typename关键字有什么用呢?
请参考这篇文章:
http://blog.csdn.net/pizzq/article/details/1487004
阅读(3339) | 评论(1) | 转发(0) |