以下代码在 VC6 中编译良好,但是当我在 VS2008 中编译相同的项目时,它给出以下错误错误 C2146: syntax error : missing ';' 在标识符“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 经验的人可能会提供帮助。