checker Warum ist der Visual Studio Community 2017 C++-Standard C++ 98?



c++ core guidelines pdf (1)

Der Wert von __cplusplus ist für aktuelle Versionen von Visual Studio vorübergehend absichtlich nicht konform, um zu verhindern, dass vorhandener Code __cplusplus wird. Das bedeutet nicht, dass Ihr Compiler keine C ++ 11 (oder neueren) Features unterstützt.

Zitieren aus MSVC meldet jetzt korrekt __cplusplus :

/ Zc: __ cplusplus

Sie müssen mit dem Schalter /Zc:__cplusplus kompilieren, um den aktualisierten Wert des __cplusplus . Wir haben versucht, das Makro standardmäßig zu aktualisieren, und haben festgestellt, dass eine Menge Code nicht richtig kompiliert wird, wenn wir den Wert von __cplusplus . Wir werden weiterhin die Verwendung des /Zc:__cplusplus Schalters für alle untergeordneten Versionen von MSVC in der 19.xx-Familie erfordern.

https://ffff65535.com

Ich habe gestern ein Upgrade auf die neueste VS Community 2017 durchgeführt (die vorherige wurde letztes Jahr installiert) und wollte den C ++ - Standard überprüfen. Ich führe den folgenden Code aus, der es überprüft, und wie sich herausstellt, habe ich C ++ 98:

#include<iostream>
using namespace std;
int main()
{
    cout << __cplusplus << endl;
    system("pause");
}

Welche Ausgänge

199711

Warum habe ich nicht den neuesten C ++ - Standard?





standards