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

封装含有std:map的模板类遇到的有关问题,无法定义iterator

2012-03-07 
封装含有std::map的模板类遇到的问题,无法定义iterator封装一个类模板类,其中有个成员是std::maptemplate

封装含有std::map的模板类遇到的问题,无法定义iterator
封装一个类模板类,其中有个成员是std::map

template <class   KEY,class   VALUE>
class   CMyMap
{
public:
    ...
    void*   Lookup(KEY   key);
    std::map <KEY,VALUE>   moContent;
    ...
}

template <class   KEY,class   VALUE>
inline   void*   CMyMap <KEY,VALUE> ::Lookup(KEY   key)
{
BOOL   lbResult   =   FALSE;

CAutoLock   moAutoLock(mstrAccessCritcalSection);

                  //这一行会报错
std::map <KEY,VALUE> ::iterator   loContentIterator;

loContentIterator   =   moContent.find(key);
if(loContentIterator   ==   moContent.end())
。。。。
}
在Linux下编译会提示error:   expected   `; '   before   "loContentIterator "。
不知道是什么原因,如何解决。整了两天了,请高手指点。


[解决办法]
std::map <KEY,VALUE> ::iterator loContentIterator;
改为:
typename std::map <KEY,VALUE> ::iterator loContentIterator;

热点排行