类模板 使用iterator在VS2010编译通过,g++ 3.4.6报错

zebiak123 2013-11-12 05:14:56
出错行
std::queue< T >::const_iterator iter = _queue.begin();

报错信息
src/BlockingQueue.h: In member function `bool BlockingQueue<T>::contains(const T&) const':
src/BlockingQueue.h:61: error: expected `;' before "iter"
src/BlockingQueue.h:62: error: `iter' was not declared in this scope
...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adol1111 2013-11-13
  • 打赏
  • 举报
回复
引用 6 楼 ri_aje 的回复:
[quote=引用 5 楼 mougaidong 的回复:] 试试 typename std::queue< T >::const_iterator iter = _queue.begin();
++ 没有 typename 的本来就应该不对,vs2010 没有严格执行标准。[/quote] +1 微软的VS对一些标准问题处理的不如gcc严格,而且很多标准的更新都过于缓慢,甚至不更新
ri_aje 2013-11-13
  • 打赏
  • 举报
回复
引用 5 楼 mougaidong 的回复:
试试 typename std::queue< T >::const_iterator iter = _queue.begin();
++ 没有 typename 的本来就应该不对,vs2010 没有严格执行标准。
turing-complete 2013-11-12
  • 打赏
  • 举报
回复
试试 typename std::queue< T >::const_iterator iter = _queue.begin();
ljhhh0123 2013-11-12
  • 打赏
  • 举报
回复
那为何不换个2010年之后出的g++编译器呢?如mingw.
To_be_sky 2013-11-12
  • 打赏
  • 举报
回复
看看是不是头文件不一样。
zebiak123 2013-11-12
  • 打赏
  • 举报
回复
请教g++ 3.4.6应该如何写
图灵狗 2013-11-12
  • 打赏
  • 举报
回复
两者的STL部分稍有差别。
引用 楼主 johnfinkel 的回复:
出错行 std::queue< T >::const_iterator iter = _queue.begin(); 报错信息 src/BlockingQueue.h: In member function `bool BlockingQueue<T>::contains(const T&) const': src/BlockingQueue.h:61: error: expected `;' before "iter" src/BlockingQueue.h:62: error: `iter' was not declared in this scope

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧