Maison >développement back-end >C++ >Pourquoi la macro __cplusplus de Visual Studio 2012 indique-t-elle toujours la compatibilité C 98 malgré la prise en charge de C 11 ?
Visual Studio 2012 __cplusplus et sa divergence avec la prise en charge de C 11
Malgré la prise en charge annoncée de Visual Studio 2012 pour C 11, une incohérence a été notée concernant la macro __cplusplus. Au lieu de refléter la valeur attendue de 201103L, elle continue d'être définie comme 199711L dans les projets C.
Explication possible
La macro __cplusplus est une macro prédéfinie qui fournit la numéro de version du standard C utilisé par le compilateur. Dans ce cas précis, la valeur de 199711L correspond à "l'ancienne" norme C, antérieure à C 11.
Impact sur les en-têtes C 11
Même lorsque C 11 les en-têtes sont inclus dans le projet, __cplusplus reste incorrectement défini comme 199711L. Cette incohérence peut entraîner des problèmes potentiels de compatibilité entre le code et la norme C 11.
Bogue connu
Le problème a été reconnu par Microsoft et un rapport de bug a été publié. été déposé (la valeur de la macro prédéfinie __cplusplus est toujours 199711L). Par conséquent, ce problème devrait être résolu dans une future mise à jour.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!