這是合法的C++ 11:decltype地圖值類型?
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嘗試這樣做,也沒有工作。 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不解決或使其變得更容易。
試着用GCC 4.7 – 2012-04-24 14:17:20
@BasileStarynkevitch我不能用gcc 4.7的原因,他們打破了有一些其他的東西:http://stackoverflow.com/questions/8297652/error-boost-disable-threads :( – anio 2012-04-24 15:54:03
您可能已經意識到它,但通常的方法是使用'std :: make_pair(my_x,my_y)' – 2012-04-24 16:43:40