Referenz auf das Objekt von std::map::iterator's second
-
Hiho,
unter VC++ 6 kann ich irgendwie keine Referenz auf das Objekt erstellen was std::map<K, V>::iterator's second Methode zurückgibt.
Auf 3 anderen Compilern die ich getestet habe, lief es.#pragma warning(disable: 4786) #include <map> class Test { }; int main() { std::map<int, Test> map_test; std::map<int, Test>::iterator iter = map_test.find(10); Test& test(iter->second); return 0; }
Gibt es einen Workaround für VC++ 6?
Der Direktzugriff funktioniert, also: iter->second->MemberfunktionVonTest();
Aber das ist nicht gerade sehr verständlich.
-
Test& test = iter->second;
-
Danke für die Hilfe.
Welche Syntax ist denn laut Standard für die Initialisierung einer Referenz vorgesehen? Sind beide erlaubt, und VC++ 6 erlaubt nur die Eine?
-
Ich habe den Standard schnell überflogen und konnte nichts genaueres finden. Es wird aber nur die type foo = bar Schreibweise verwendet.