C4346: “std::map::iterator” : 依赖名称不是类型

自助开通VIP,整站资源任意下载

一个VC6的代码,转成VS2003的时候,碰到下面的语句编译出错,VC6下没问题。

 

C4346: “std::map::iterator” : 依赖名称不是类型  棋牌技术  第1张

template <class Type> class CN3TableBase
{
public:
CN3TableBase();
virtual ~CN3TableBase();

protected:
...

C4346: “std::map::iterator” : 依赖名称不是类型  棋牌技术  第2张

typedef std::map<unsigned int, Type>::iterator it_Table;
typedef std::map<unsigned int, Type>::value_type val_Table;
typedef std::pair<it_Table, bool> pair_Table;
};

 

改为:

typedef typename std::map<unsigned int, Type>::iterator it_Table;
typedef typename std::map<unsigned int, Type>::value_type val_Table;
typedef typename std::pair<it_Table, bool> pair_Table;

就解决了

 

原因:可能编译器不清楚map的iterator是否是个类型 需要通过typename告诉编译器 这是个类型

① 本网站名称及网址:速群资源分享网 | www.suqun.net
② 本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。
③ 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
④ 如果你也有好源码或者教程,可以联系小编,有钻石奖励和额外收入。
⑤ 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。
⑥ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦ 本站资源大多存储在云盘,如发现链接失效,请联系客服,我们会第一时间更新。
速群棋牌源码网 » C4346: “std::map::iterator” : 依赖名称不是类型

VIP会员尊享专属特权,真正的海量,无套路,无限量下载!

游戏演示 联系客服