【发布时间】:2010-11-03 15:21:40
【问题描述】:
我在关注节目
typedef std::map<std::string, CRTSLogManager*> FileNameToStorageClass;
FileNameToStorageClass m_mapFileNameToLogStorage;
map<string, void*>::iterator iter;
iter =m_mapFileNameToLogStorage.find(cFileName);
if(iter == m_mapFileNameToLogStorage.end())
{
typedef std::pair<std::string, CRTSLogManager*> FileNameToStorageClassPair;
string strFilename = "MyFile";
CRTSLogManager *pLogManager = new CRTSLogManager();
m_mapFileNameToLogStorage.insert(
FileNameToStorageClassPair(strFilename, pLogManager));
}
我在编译时遇到与 == check in if 条件相关的错误。
'iter == 中的 'operator==' 不匹配 ((CRTSLogManagerReal*)this)->CRTSLogManagerReal::m_mapFileNameToLogStorage.std::map, 标准::分配器 >, CRTSLogManager*, 标准::少, 标准::分配器 > >, 标准::分配器, 标准::分配器 >, CRTSLogManager*> >::.std::_Tree<_traits>::end 与 _Traits = std::_Tmap_traits, 标准::分配器 >, CRTSLogManager*, 标准::少, 标准::分配器 > >, 标准::分配器, 标准::分配器 >, CRTSLogManager*> >, false>'
【问题讨论】:
-
您可能希望使用“代码示例”选项更好地格式化它。
-
还有一些语法错误,例如typedef 缺少 map 的模板参数,这使得这段代码很难在我的机器上试用。