Problem mit <map>
-
plizer schrieb:
Ich habe ja schon ein älteres System hier drauf. Kann es sein, dass es früher Beschränkungen der "Klassentiefe" gab? Vielleicht kommt er damit nicht klar?
Was meinst du mit älterem System? Nutzt du zufällig Visual Studio 6? Das könnte einiges erklären!

-
David_pb schrieb:
plizer schrieb:
Ich habe ja schon ein älteres System hier drauf. Kann es sein, dass es früher Beschränkungen der "Klassentiefe" gab? Vielleicht kommt er damit nicht klar?
Was meinst du mit älterem System? Nutzt du zufällig Visual Studio 6? Das könnte einiges erklären!

ja, nutze ich :(.
-
plizer schrieb:
ja, nutze ich :(.
Updaten. VC++ 2005 EE (Express Edition) ist kostenlos und beinhaltet einen der momentan besten C++-Compiler. VC6 ist alt und buggy (was den C++-Standard angeht).
Angesichts der Alternativen besteht kein Grund, veraltete Software einzusetzen.
-
Aber meine Firma entwickelt noch alles in VC6.0 und alle alten Programme sind darin geschrieben.
Aber es ist echt nervig, weil ich schon öfter Fehlermeldungen hatte, die kein anderer bekommt. Und das Online-MSDN kann ich mir zum Teil auch knicken.
-
Dann wirds höchste Zeit für die Firma umzusteigen!
Der Compiler von VS6 ist total unkonform zum C++ Standard.
-
Wenn hier das große Projekt abgeschlossen wird eh besprochen was man in Zukunft einsetzt. .Net, Java oder Visual C++ 2005. Ich hoffe ja es wird Java ;-). Die Performance ist dabei nicht mehr ganz so wichtig. Für hardwarenahe Programmierung, die hier immer seltener wird, kann man ja dann immer noch mit C programmieren.
Kann ich jetzt mein <map> Problem da unten garnicht lösen?
-
pilzer hat erst die Firma gewechselt! Und er ist neu in C++, und hat vorher Java gemacht. Haben wir schon alles in einem langen MFC-Thread durch gekaut. Er muß mit VC6 auskommen!
-
plizer schrieb:
Wieder mal die map!
Bei diesem Quelltext:map<string, map<string, map<string, map<string, vector<string> > > > > mapDaten; map<string, map<string, map<string, vector<string> > > > mapLayer1; mapDaten.insert(make_pair("test",mapLayer1));Kommt diese Fehlermeldung:
error C2536: 'std::pair<char [5],class ?? :: ?? >::first' : Angabe einer expliziten Initialisierung für Arrays nicht moeglich
Ich kann nur mit der Fehlermeldung, bezogen auf mein Problem, nichts anfangen. Auch die MSDN konnte mir nicht helfen.
Hat jemand Rat?
In welcher Zeile denn? Bei insert?
Das Problem dürfte wahrscheinlich "test" sein. Probier mal folgendes:
mapDaten.insert(make_pair(std::string("test"), mapLayer1)); // ODER: std::string str("test"); mapDaten.insert(make_pair(str, mapLayer1));
-
@Artchi: Das wars! Du bist ein Schatz
Danke schön!
(werd ich mir mal merken, das die strings mal öfter das Problem sein können)
-
Ja, der std::string ist in VC6 nicht ganz ISO-konform.