Heim >Backend-Entwicklung >C++ >Warum zeigt das __cplusplus-Makro von Visual Studio 2012 trotz C 11-Unterstützung immer noch C 98-Kompatibilität an?
Visual Studio 2012 __cplusplus und seine Diskrepanz mit der C 11-Unterstützung
Trotz der angekündigten Unterstützung von Visual Studio 2012 für C 11 wurde eine Inkonsistenz festgestellt bezüglich des __cplusplus-Makros. Anstatt den erwarteten Wert von 201103L wiederzugeben, wird er in C-Projekten weiterhin als 199711L definiert.
Mögliche Erklärung
Das __cplusplus-Makro ist ein vordefiniertes Makro, das Folgendes bereitstellt Versionsnummer des vom Compiler verwendeten C-Standards. In diesem speziellen Fall entspricht der Wert von 199711L dem „alten“ C-Standard, der vor C 11 existierte.
Auswirkungen auf C 11-Header
Auch wenn C 11 Wenn Header im Projekt enthalten sind, bleibt __cplusplus fälschlicherweise als 199711L definiert. Diese Inkonsistenz kann zu potenziellen Kompatibilitätsproblemen zwischen dem Code und dem C 11-Standard führen.
Bekannter Fehler
Das Problem wurde von Microsoft bestätigt und ein Fehlerbericht erstellt wurde abgelegt (Ein Wert des vordefinierten Makros __cplusplus ist immer noch 199711L). Daher wird erwartet, dass das Problem in einem zukünftigen Update behoben wird.
Das obige ist der detaillierte Inhalt vonWarum zeigt das __cplusplus-Makro von Visual Studio 2012 trotz C 11-Unterstützung immer noch C 98-Kompatibilität an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!