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

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;