older gcc std::map doesn't have emplace()

see http://stackoverflow.com/questions/24389014/stdmap-emplace-gcc-4-8-2

I also support ifdef too, that's maybe a better option but this syntax looks better anyway and it's just settings.