>백엔드 개발 >C++ >C 11 지원에도 불구하고 Visual Studio 2012의 __cplusplus 매크로가 여전히 C 98 호환성을 나타내는 이유는 무엇입니까?

C 11 지원에도 불구하고 Visual Studio 2012의 __cplusplus 매크로가 여전히 C 98 호환성을 나타내는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-05 04:36:02645검색

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

Visual Studio 2012 __cplusplus 및 C 11 지원과의 불일치

Visual Studio 2012의 C 11 지원 광고에도 불구하고 불일치가 발견되었습니다. __cplusplus 매크로에 관해. 201103L의 기대값을 반영하지 않고 계속해서 C 프로젝트 내에서 199711L로 정의되고 있습니다.

가능한 설명

__cplusplus 매크로는 다음을 제공하는 사전 정의된 매크로입니다. 컴파일러에서 사용하는 C 표준의 버전 번호입니다. 이 특정한 경우에 199711L 값은 C 11 이전의 "이전" C 표준에 해당합니다.

C 11 헤더에 미치는 영향

C 11인 경우에도 헤더가 프로젝트에 포함되어 있으면 __cplusplus는 199711L로 잘못 정의된 상태로 유지됩니다. 이러한 불일치로 인해 코드와 C 11 표준 간의 호환성 문제가 발생할 수 있습니다.

알려진 버그

이 문제는 Microsoft에서 인정했으며 버그 보고서에 제출되었습니다(미리 정의된 매크로 __cplusplus의 값은 여전히 ​​199711L입니다). 따라서 향후 업데이트에서 해결될 것으로 예상됩니다.

위 내용은 C 11 지원에도 불구하고 Visual Studio 2012의 __cplusplus 매크로가 여전히 C 98 호환성을 나타내는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.