读书人

error C2146: 语法异常: 缺少“;”(在

发布时间: 2012-04-20 15:27:03 作者: rapoo

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;

读书人网 >C++

热点推荐