unordered_map に格納されている unique_ptr を取得しようとしています。次のコードを使用します。
#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>) ()’
このコードの何が問題なのかわかりません。イテレータから参照を抽出するために別の方法を使用する必要があるかのようですが、それを行う方法がわかりません。
シャチャー