C++ Comiler abweichungen von VS 6 auf VS8



  • Hallo,

    Ich habe Visual Studio 8.0 installiert. Nun wollte ich meinen "alten" Code mal neu compilieren lassen , dabei bekomme ich aber Fehler , die ich bei der älteren Version nicht hatte.

    Könnte es sein, das der neue Compile nach strengeren "Regeln" compiliert wird?

    z.B konnte ich folgedes in VS 6 machen, was in VS 8 nicht mehr geht:

    for(int i = 0, j = 0; ...)

    also eine Mehrfach dekleration in einer For-Schleife.

    Dessweiterem gibt es da noch Fehler bei der Syntax von Funktionzeigern:
    z.B. konnte ich in VS6 diese Funktionzeigerzuweisung machen:

    void (CStalker::*pfncAktionHandler[MAX_ACTION_HANDLER] )(strAktionData &);
    void List( strAktionData & Data);

    pfncAktionHandler[0] = List; //geht nicht mehr

    Bei der neuen Version bekomme ich dort Folgenden Fehler:

    error C3867: 'CStalker::List': function call missing argument list; use '&CStalker::Test' to create a pointer to member

    Wurde in der neuen Compiler Verison etwas die Syntax verändert?

    Gruß Stu



  • Lange wohl hinterm Mond gelebt? 🙄 Seit 1998 (!!!) gibts einen ISO-C++ Standard weltweit. Den hat VC6 nicht unterstützt. Seit VC7.1 (2003) wird der ISO-C++ Standard unterstützt. Nichts mit stengere Regeln oder so, sondern "Normalität".



  • mhhh ich hab mich auch schon gewundernt, warum das auch nicht der GNU compiler compilieren wollte - das erklärt so einiges :).
    Danke.



  • Bzgl. dem for-Skope siehe:
    /Zc:forScope (Force Conformance in for Loop Scope) (C++)
    http://msdn2.microsoft.com/84wcsx8x


Anmelden zum Antworten