我想獲取存儲在unordered_map中的unique_ptr。我使用下面的代碼:unique_ptr的unordered_map:無法從迭代器中獲取值
#include <unordered_map>
#include <memory>
int *function()
{
std::unordered_map< int, std::unique_ptr<int> > hash;
auto iterator=hash.find(5);
return iterator->second().get();
}
當我嘗試編譯這個(GCC 4.7.2),我收到以下錯誤:
test.cpp: In function ‘int* function()’:
test.cpp:9:29: error: no match for call to ‘(std::unique_ptr<int>)()’
我不明白什麼是錯的這個代碼。就好像我需要使用另一種方法從迭代器中提取引用,但我知道沒有辦法做到這一點。
Shachar
D'oh!謝謝。 Mia culpa。 –