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 ?

Pourquoi la macro __cplusplus de Visual Studio 2012 indique-t-elle toujours la compatibilité C 98 malgré la prise en charge de C 11 ?

DDD
DDDoriginal
2024-11-05 04:36:02647parcourir

Why Does Visual Studio 2012's __cplusplus Macro Still Indicate C  98 Compatibility Despite C  11 Support?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn