/Zc:externConstexpr (extern constexpr 변수 사용)

/Zc:externConstexpr 컴파일러 옵션은 컴파일러에 C++ 표준을 준수하고 변수에 대한 constexpr 외부 연결을 허용하도록 지시합니다. 기본적으로 Visual Studio는 constexpr 키워드(keyword) 지정 extern 하는 경우에도 항상 변수 내부 연결을 제공합니다.

구문

/Zc:externConstexpr[-]

설명

/Zc:externConstexpr 컴파일러 옵션을 사용하면 컴파일러가 .를 사용하여 extern constexpr선언된 변수에 외부 연결을 적용합니다.

이전 버전의 Visual Studio에서 기본적으로 또는 지정된 경우 /Zc:externConstexpr- Visual Studio는 키워드(keyword) 사용하는 경우에도 extern 변수에 constexpr 내부 링크를 적용합니다. 이 /Zc:externConstexpr 옵션은 Visual Studio 2017 업데이트 15.6부터 사용할 수 있습니다. 기본적으로 해제되어 있습니다.

Visual Studio 2022 업데이트 17.6을 기준으로 이 /permissive- 옵션은 두 가지 모두를 /Zc:externConstexpr/Zc:lambda사용하도록 설정합니다. 이전 버전 /permissive- 에서는 둘 중 하나를 사용하도록 설정하지 않았습니다.

헤더 파일에 선언된 extern constexpr변수가 포함되어 있는 경우 중복 선언을 연결된 이진 파일의 단일 인스턴스로 병합하기 위해 표시 __declspec(selectany) 해야 합니다. 그렇지 않으면 한 정의 규칙 위반에 대한 링커 오류(예: LNK2005)가 표시 될 수 있습니다.

Visual Studio에서 이 컴파일러 옵션을 설정하려면

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

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

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

참고 항목

auto 키워드
permissive
/Zc (규칙)