Como inserir um par de std :: pair dentro de outro std :: pair?

Estou declarando um mapa de string para um par de pares da seguinte maneira:

std::map<std::wstring, 
         std::pair<std::pair<long, long>, 
                   std::pair<long, long>>> reference;

E eu o inicializo como:

reference.insert(L"First", 
                 std::pair<std::pair<long, long>, 
                           std::pair<long, long>>(std::pair<long, long>(-1, -1),
                           std::pair<long, long>(0, 0)));

No entanto, o Visual C ++ me fornece o erro "C2664, nenhum construtor poderia usar o tipo de origem ou a resolução de sobrecarga do construtor era ambígua".

Eu sou novo no uso de modelos e STL e não sei dizer o que estou fazendo de errado.

questionAnswers(5)

yourAnswerToTheQuestion