定义iterator出错is not derived from type

我定义了一个类
#include <ext/hash_map>
template<class ENTRY>
class CacheMemory {
public:
template <class ENTRY1>
  struct _MmeMap_ele : public CMapElement_limit_Mem
  {
  uint m_memidex;
  bool m_isInUse;
ENTRY1 m_entry;//cache block content
uint m_way; //way number
  };
  typedef _MmeMap_ele<ENTRY> MmeMap_ele;
……
private:
  typedef stdext::hash_map<uint, MmeMap_ele> CLimitmemMap;
  typedef CLimitmemMap::iterator CLimitmemMap_Iter;
  class CTable_limitNumber<CLimitmemMap, CLimitmemMap_Iter, uint, MmeMap_ele> m_ctable_limitnumber;
……
}

在linux下编译的时候在typedef CLimitmemMap::iterator CLimitmemMap_Iter;这一行报错了
error:type'__gnu_cxx::hash_map<unsigned int,CacheMemory<ENTRY>::MmeMap_ele<ENTRY>,__gnu_cxx::hash<unsigned int>,std::equal_to<unsigned int>,std::allocator<CacheMemory<ENTRY>::MmeMap_ele<ENTRY>>>' is not derived from type 'CacheMemory<ENTRY>'

请问这个错误是什么意思呢,要怎么解决?

作者: smart_hh   发布时间: 2011-05-26

typedef CLimitmemMap::iterator CLimitmemMap_Iter;
改成
typedef stdext::hash_map<uint, MmeMap_ele>::iterator CLimitmemMap_Iter;

作者: wzzww   发布时间: 2011-05-27

引用 1 楼 wzzww 的回复:

typedef CLimitmemMap::iterator CLimitmemMap_Iter;
改成
typedef stdext::hash_map<uint, MmeMap_ele>::iterator CLimitmemMap_Iter;


好好,我试试看!

作者: smart_hh   发布时间: 2011-05-27

引用 1 楼 wzzww 的回复:

typedef CLimitmemMap::iterator CLimitmemMap_Iter;
改成
typedef stdext::hash_map<uint, MmeMap_ele>::iterator CLimitmemMap_Iter;


是过了,报错还是是一样的,崩溃呀!

作者: smart_hh   发布时间: 2011-05-27