/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에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.

  3. 추가 옵션: 창에 추가 /Zc:__cplusplus 하거나 /Zc:__cplusplus- 추가합니다.

참고 항목

/Zc (규칙)
/std(언어 표준 버전 지정)
미리 정의된 매크로