我正在关注计划
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));
}
Run Code Online (Sandbox Code Playgroud)
我在编译时遇到以下错误,这与==签入条件有关.
在'iter ==((CRTSLogManagerReal*)this)中没有匹配'operator ==' - > CRTSLogManagerReal :: m_mapFileNameToLogStorage.std :: map,std :: allocator>,CRTSLogManager*,std :: less,std :: allocator >>,std :: allocator,std :: allocator>,CRTSLogManager*>> ::.std :: _ Tree <_Traits> :: end with _Traits = std :: _ Tmap_traits,std :: allocator>,CRTSLogManager*,std: :less,std :: allocator >>,std :: allocator,std :: allocator>,CRTSLogManager*>>,false>'
你正在声明一个迭代器
std::map <string, void *>
Run Code Online (Sandbox Code Playgroud)
但你试图比较一个迭代器
std::map< std::string, CRTSLogManager*>
Run Code Online (Sandbox Code Playgroud)
它们不兼容.
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |