C++0xのdecltypeでmapのvalue_typeを取得する方法

こんな感じ

#include <type_traits>
#include <string>
#include <map>

using namespace std;

int main()
{
    map<string, int> dict;

    // std::pair<string, int> val = ...
    remove_reference<decltype(*dict.begin())>::type val = *dict.begin();

    return 0;
}