Estoy declarando un mapa de cadena a un par de pares de la siguiente manera:Cómo insertar un par de std :: pair dentro de otro std :: pair?
std::map<std::wstring,
std::pair<std::pair<long, long>,
std::pair<long, long>>> reference;
Y inicializarlo 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)));
Sin embargo, Visual C++ me da el error "C2664, n constructor podría tomar el tipo de fuente, o la resolución de sobrecarga del constructor era ambigua ".
Soy nuevo en el uso de plantillas y STL y no puedo decir lo que estoy haciendo mal.
Utilice de typedef y 'std :: make_pair' para que sea legible. – GManNickG
Lo formateé para que sea un * bit * más fácil para los ojos. – egrunin
En lugar de anidar todos estos 'std :: pair' s, ¿no podría cambiar a usar' std :: tr1 :: tuple'? Boost tiene una implementación de tupla también. – Praetorian