我想创建一个容器,它可以将CLSID结构与其他东西相关联(例如,一个字符串); 例如,std :: map.
(CLSID表示标准的Windows CLSID结构)
但是,当我想使用它的find()和insert(object [clsid] = string)时,STL只是失败并给出了错误.
有谁知道如何解决这个问题?
例如:
typedef std::map<CLSID, std::string> MyCLSIDMap;
MyCLSIDMap mymap;
CLSID sample = CLSID_NULL;
mymap[sample] = string("test"); // compilation failed here
Run Code Online (Sandbox Code Playgroud)
正如Alex回答的那样,std :: map需要将它的键与op <进行比较.
bool operator<(CLSID const& l, CLSID const& r)
{
return memcmp(&l, &r, sizeof(CLSID)) < 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |