5
我需要能够在boost::bimap<shared_ptr<Thing>, int>
中搜索原始指针Thing*
。但是,我不能把带有签名bm.left.find(thingRawPtr)
一个功能,因为一个智能指针不能隐从原始指针构成:在智能指针的bimap中查找原始指针
bimap<shared_ptr<Thing>, int> bm;
void f(Thing* thing)
{
bm.left.find(thing); // (Nasty) compile error
}
什么是规避这一目标的最佳方式是什么?
+1一个最好的自我回答Q&A我已经看到了她很长一段时间! –
真的很有趣,感谢分享。 – streppel