我從boost :: unordered_map庫(v1.45.0)中得到了奇怪的行爲。Boost unordered_map - 錯誤或不正確的用法?
在我的班級我創建一個對象:
boost::unordered_map<uint16, MyStruct *> bufferStructMap;
然後我初始化它在構造函數初始化列表:
MyClass::MyClass() : bufferStructMap() { .... }
然後我嘗試使用方法「at拉出來的東西它「(參見API中的鏈接):
const uint16 bufferNumber = 1;
try {
MyStruct * ptr = (this->bufferStructMap.at(bufferNumber));
}
catch (std::out_of_range & e){
//deal with exception
}
當地圖爲空時,ap摺疊放棄與調用「bufferStructMap.at(...)」,即使API說唯一可以拋出的異常是一個std :: out_of_range。
任何人都可以檢測到我的代碼有問題,或者這是一個提升錯誤?
謝謝!
你知道你實際得到什麼類型的異常嗎?偶然得到了「bad_cast」嗎? – 2011-05-25 15:06:18
爲什麼static_cast? – 2011-05-25 15:13:13
@尼爾:我想案子是沒有必要的,我只是爲了確保我確定的類型是正確的。但我肯定可以刪除它。好的,刪除了演員。問題仍然存在.. – 2011-05-25 15:15:04