首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

error C2146: 语法异常: 缺少“;”(在标识符“ITERATOR”的前面)

2012-04-20 
error C2146: 语法错误: 缺少“”(在标识符“ITERATOR”的前面)C/C++ codetemplate class T, int COUNTclas

error C2146: 语法错误: 缺少“;”(在标识符“ITERATOR”的前面)

C/C++ code
template <class T, int COUNT>class CDoubleList{public:    typedef        std::list<T*>                LIST;    typedef        std::list<T*>::iterator        ITERATOR;public:    CDoubleList();    virtual ~CDoubleList();private:    CRITICAL_SECTION m_critical_section;protected:    LIST m_0_list;    LIST m_1_list;private:    inline void Init();};


加上typedef std::list<T*>::iterator ITERATOR; 就出现报错:
错误 2 error C2146: 语法错误: 缺少“;”(在标识符“ITERATOR”的前面) 
错误 12 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 

C/C++ code
typedef CDoubleList<IOCP_IO,10>        IO_GROUP;typedef CDoubleList<IOCP_KEY,10>    KEY_GROUP;typedef IO_GROUP::ITERATOR    IO_POS;typedef KEY_GROUP::ITERATOR KEY_POS;


[解决办法]
typedef std::list<T*>::iterator ITERATOR;
改为
typedef typename std::list<T*>::iterator ITERATOR;

热点排行