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 중국어 웹사이트의 기타 관련 기사를 참조하세요!