一个VC6的代码,转成VS2003的时候,碰到下面的语句编译出错,VC6下没问题。
template <class Type> class CN3TableBase
{
public:
CN3TableBas不清楚的图片怎么变清晰e编译器和解释器的区别();
virtual ~CN3名称是什么意思TableBase();
protected:
…
typedef std::map<unsigned int, Type>:编译器:iterator it_Table;
typedef std::map<unsigned int, Type>::value_type val_Table;
ty名称大全微信pedef std::pair<it_T编译器是怎么写出来的able, bool> pair_Table;
};
改为:
typedef typename std::map<unsigned int, Type>::类型的主要要素包括iterat编译器or it_名称大全微信Table;
typedef typename std::map<unsigned int, Type是个劫>::value_type val_Table;
typedef t是个大佬ypename std::pair<it_Table, bool> pair_Table;
就解决了
原因:可能编译器不清楚map的iterator是否是个类型 需要通过typename告诉编译器 这是个类型
C4346: “std::map::iterator” : 依赖名称不是类型原文链接:https://qipaiyuanmaxiazai.com/12340.html,转载请注明出处~~~
评论0