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