这是合法的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