/Zc:__cplusplus
(업데이트된 __cplusplus
매크로 사용)
/Zc:__cplusplus
컴파일러 옵션을 사용하면 전처리기 매크로가 __cplusplus
최근 C++ 언어 표준 지원에 대해 업데이트된 값을 보고할 수 있습니다. 기본적으로 Visual Studio는 항상 전처리기 매크로의 __cplusplus
값을 199711L
반환합니다.
구문
/Zc:__cplusplus
[-
]
설명
__cplusplus
전처리기 매크로는 일반적으로 특정 버전의 C++ 표준에 대한 지원을 보고하는 데 사용됩니다. 많은 기존 코드가 이 매크로 일치 199711L
값에 따라 달라지는 것처럼 보이기 때문에 컴파일러 옵션을 사용하여 /Zc:__cplusplus
명시적으로 옵트인하지 않는 한 컴파일러는 매크로 값을 변경하지 않습니다. 이 /Zc:__cplusplus
옵션은 Visual Studio 2017 버전 15.7부터 사용할 수 있으며 기본적으로 꺼져 있습니다. 이전 버전의 Visual Studio에서 기본적으로 또는 지정된 경우 /Zc:__cplusplus-
Visual Studio는 전처리기 매크로의 __cplusplus
값을 199711L
반환합니다. /permissive-
옵션은 /Zc:__cplusplus
을 사용하도록 설정하지 않습니다.
/Zc:__cplusplus
옵션을 사용하도록 설정하면 매크로에서 보고하는 값은 __cplusplus
버전 옵션 설정에 /std
따라 달라집니다. 이 표는 매크로에 사용할 수 있는 값을 보여 줍니다.
/Zc:__cplusplus 선택 |
/std 선택 |
__cplusplus 값 |
---|---|---|
Zc:__cplusplus |
/std:c++14 (기본값) |
201402L |
Zc:__cplusplus |
/std:c++17 |
201703L |
Zc:__cplusplus |
/std:c++20 |
202002L |
Zc:__cplusplus |
/std:c++latest |
텍스트 참조 |
Zc:__cplusplus- (사용 안 함) |
모든 값 | 199711L |
지정되지 않음 | 모든 값 | 199711L |
컴파일러는 C++98, C++03 또는 C++11에 대한 표준 옵션을 지원하지 않습니다. 이 /std:c++20
옵션은 Visual Studio 2019 버전 16.11부터 사용할 수 있습니다. 옵션의 __cplusplus
/std:c++latest
값은 Visual Studio 버전에 따라 달라집니다. 항상 Visual Studio 버전에서 지원하는 가장 높은 지원되는 __cplusplus
표준 값보다 한 개 이상 높습니다.
컴파일러 도구 집합에 대한 변경 내용을 보다 세밀하게 검색하려면 미리 정의된 매크로를 _MSC_VER
사용합니다. 이 기본 제공 매크로의 값은 Visual Studio 2017 이상 버전에서 모든 도구 집합 업데이트마다 증가됩니다. 미리 정의된 매크로는 _MSVC_LANG
옵션의 사용 여부를 /Zc:__cplusplus
표준 버전으로 보고합니다. /Zc:__cplusplus
사용하도록 설정하면 __cplusplus
값이 .와 같습니다_MSVC_LANG
.
Visual Studio에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.
추가 옵션: 창에 추가
/Zc:__cplusplus
하거나/Zc:__cplusplus-
추가합니다.