There was a breaking change in make_pair
when used incorrectly in C++11: if you specify argument types, it means something different in C++11 than in C++03.
To fix this, change std::make_pair
that specifies argument types to std::pair
and leave everything else alone.
Alternatively, remove the type arguments to make_pair
, as you should basically never pass them. This can, however, change how things work if the old code was doimg something quirky (in the above case it is safe I think).
The first solution will, however, mimic C++03s behavior in C++11 closer, in case they did something strange, so is safest.
std::make_pair
without <>
after them you should leave alone.
This breaking change is related to perfect forwarding efficiency improvements in C++11 and support for move
only types.