これはc++11で合法ですか?
std::unordered_map<X, Y> xy_map;
X my_x;
Y my_y;
xy_map.insert(decltype(xy_map)::value_type(my_x, my_y));
これをgcc4.6.3で試しましたが、機能しませんでした。GCCの不満:
expected primary-expression before 'decltype'
私はしないことを望んでいました:
typedef std::unordered_map<X, Y> MyMap;
xy_map.insert(MyMap::value_type(my_x, my_y));
c ++ 11はそれを解決したり、簡単にしたりすることはできないと思います。