"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué __cplusplus se define como 199711L en Visual Studio 2012 a pesar de la compatibilidad con C++ 11?

¿Por qué __cplusplus se define como 199711L en Visual Studio 2012 a pesar de la compatibilidad con C++ 11?

Publicado el 2025-01-18
Navegar:994

Why is __cplusplus defined as 199711L in Visual Studio 2012 despite C   11 support?

__cplusplus en Visual Studio 2012

En Visual Studio 2012, algunos desarrolladores han notado que __cplusplus se define como 199711L, lo que indica el "antiguo" Estándar C, a pesar de que VS 2012 incluye C 11 soporte.

Antecedentes

La macro __cplusplus es una macro de preprocesador que proporciona la versión del estándar C compatible en Visual Studio. Un valor de 199711L corresponde al estándar C 98, mientras que 201103L indicaría compatibilidad con C 11.

Problema

En Visual Studio 2012, incluso si se incluyen encabezados C 11 , __cplusplus todavía se define incorrectamente como 199711L. Esto puede ser problemático para el código que se basa en la macro __cplusplus para diferenciar entre versiones del estándar C.

Resolución

El problema se informó a Microsoft para su revisión. y aparece bajo el título "Un valor de la macro predefinida __cplusplus sigue siendo 199711L".

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3