map<string, int> hoge;
hoge.insert(make_pair("てすと", 10));

map<int, string> hoge;
hoge.insert(make_pair(10, "てすと"));

VS2008で上のがコンパイルできて、下のが出来ない理由って何なんでしょ?