Je déclare une carte de chaîne à une paire de paires comme suit:Comment insérer une paire de std :: pair dans une autre paire std ::?
std::map<std::wstring,
std::pair<std::pair<long, long>,
std::pair<long, long>>> reference;
Et j'initialize comme:
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)));
Cependant, Visual C++ me donne l'erreur « C2664, No constructeur pourrait prendre le type de source, ou la résolution de surcharge du constructeur était ambiguë ". Je suis nouveau à l'aide de modèles et de STL et je ne peux pas dire ce que je fais mal.
S'il vous plaît utiliser de typedef et 'std :: make_pair' pour le rendre lisible. – GManNickG
Je l'ai reformaté pour le rendre un peu plus facile sur les yeux. – egrunin
Au lieu d'imbriquer tous ces 'std :: paires's ne pourriez-vous pas utiliser' std :: tr1 :: tuple'? Boost a aussi une implémentation de tuple. – Praetorian