gpt4 book ai didi

c++ - 丢失的 ;在 VC9 中编译 VC6 代码时在标识符之前

转载 作者:太空宇宙 更新时间:2023-11-04 14:51:51 25 4
gpt4 key购买 nike

以下代码在 VC6 中编译正常,但是当我在 VS2008 中编译同一个项目时,出现以下错误错误 C2146:语法错误:缺少“;”在标识符 'm_pItr' 之前

template <class pKey, class Data, class pCompare, 
class hKey = int, class hCompare = less<hKey>,
class sKey = int, class sCompare = less<sKey>,
class tKey = int, class tCompare = less<tKey>,
class cKey = int, class cCompare = less<cKey>>

class GCache
{
private:

typedef map<pKey, Data, pCompare> PRIMARY_MAP;
PRIMARY_MAP pMap;

PRIMARY_MAP::iterator m_pItr; //error here

//Code truncated
}

这里有什么问题吗?有将 C++ 代码从 VC6 迁移到 VC2005/2008 的经验的人可能会提供帮助。

最佳答案

您可能需要插入“typename”,以告诉编译器 PRIMARY_MAP::iterator 在所有情况下都是一种类型。

例如

class  GCache
{
private:

typedef map<pKey, Data, pCompare> PRIMARY_MAP;
PRIMARY_MAP pMap;

typename PRIMARY_MAP::iterator m_pItr;

//Code truncated
}

关于c++ - 丢失的 ;在 VC9 中编译 VC6 代码时在标识符之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com