一个VC6的代码,转成VS2003的时候 ,碰到下面的语句编译出错,VC6下没问题 。
template <class Type> class CN3TableBase
{
public:
CN3TableBase();
virtual ~CN3TableBase();
protected:
...
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告诉编译器 这是个类型
本文链接:https://www.9n9nw.com/game/1585.html
版权声明:
本站发布的内容若侵犯到您的权益,请邮件联系 web58678@gmail.com 删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。