Hier, je suis passé à la dernière version de VS Community 2017 (la précédente avait été installée l'année dernière) et je voulais vérifier le standard C++. Donc, je lance le code suivant qui vérifie, et il se trouve que j'ai C++ 98:
#include<iostream>
using namespace std;
int main()
{
cout << __cplusplus << endl;
system("pause");
}
Quelles sorties
199711
Pourquoi n'ai-je pas la dernière norme C++?
La valeur de __cplusplus
est temporairement intentionnellement non conforme par défaut pour les versions actuelles de Visual Studio afin d'éviter de casser le code existant. Cela ne signifie pas que votre compilateur ne prend en charge aucune fonctionnalité C++ 11 (ou plus récente).
Citant de MSVC rapporte maintenant correctement __cplusplus :
/ Zc: __ cplusplus
Vous devez compiler avec le
/Zc:__cplusplus
pour afficher la valeur mise à jour du__cplusplus
macro. Nous avons essayé de mettre à jour la macro par défaut et nous avons découvert qu’une grande partie du code ne se compilait pas correctement lorsque nous modifions la valeur de__cplusplus
. Nous continuerons à exiger l'utilisation de la/Zc:__cplusplus
pour toutes les versions mineures de MSVC de la famille 19.xx.