这在 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));
我在 gcc 4.6.3 中尝试过,但没有成功。海合会抱怨:
expected primary-expression before 'decltype'
我希望不要这样做:
typedef std::unordered_map<X, Y> MyMap;
xy_map.insert(MyMap::value_type(my_x, my_y));
我猜 c++11 并没有解决这个问题或者让它变得更容易。