次のようなコードをコンパイルしようとしました:
#include <string>
#include <unordered_map>
class A{
};
int main(int argc, char* argv[]){
std::unordered_map<std::string, std::reference_wrapper<const A>> stringToRef;
A a;
const A& b = a;
stringToRef.insert(std::make_pair("Test", b));
return 0;
}
しかし、なぜコンパイルされないのかわかりません。同じコードが MS Visual Studio 2012 で正常にコンパイルされたと確信していますが、Visual Studio 2013 では次のコンパイル エラーが報告されます。
error C2280: std::reference_wrapper<const A>::reference_wrapper(_Ty &&): attempting to reference a deleted function
クラスにコピー、移動、代入演算子を追加しようとしましたが、このエラーを取り除くことができませんでした。このエラーが参照している削除された機能を正確に知るにはどうすればよいですか?