다음을 통해 공유


/Zc:static_assert (엄격한 static_assert 처리)

/Zc:static_assert 컴파일러 옵션은 클래스 또는 함수 템플릿을 구문 분석할 때 비 종속 테스트 식을 사용하여 호출을 평가 static_assert 하도록 컴파일러에 지시합니다.

구문

/Zc:static_assert
/Zc:static_assert-

설명

/Zc:static_assert 컴파일러 옵션은 테스트 식이 종속되지 않은 경우 처음 구문 분석할 때 함수 템플릿 본문 또는 클래스 템플릿 멤버 함수의 본문에서 계산 static_assert 하도록 컴파일러에 지시합니다. 비 종속 테스트 식이 아닌 false경우 컴파일러는 오류를 즉시 내보낸다. 테스트 식이 종속된 경우 템플릿이 static_assert 인스턴스화될 때까지 평가되지 않습니다.

/Zc:static_assert 옵션은 Visual Studio 2022 버전 17.1부터 사용할 수 있습니다. 이전 버전의 Visual Studio에서 또는 지정된 경우 Visual Studio는 함수 템플릿의 본문 내에 있거나 클래스 템플릿의 멤버 함수 본문 내에 있는 경우 /Zc:static_assert- static_assert 종속 분석을 수행하지 않습니다. 대신 템플릿이 static_assert 인스턴스화되는 경우에만 평가합니다.

/permissive- 옵션은 사용하도록 설정/Zc:static_assert하므로 사용하거나 /std:c++latest사용하는 프로젝트에서 /std:c++20 기본적으로 설정됩니다. 이 /Zc:static_assert- 옵션은 명령줄에서 /std:c++20또는 /std:c++latest/permissive- 옵션 후에 와야 합니다.

컴파일러가 기본 C++14 모드 /permissive- 이거나 /Zc:static_assert 지정된 경우 동작을 사용합니다 /Zc:static_assert . 그러나 템플릿 본문에서 평가 static_assert 되는 경우 C++17까지 이 동작이 필요하지 않으므로 기본값이 아닌 경고 C5254도 보고합니다. "언어 기능 'terse static assert'에는 컴파일러 플래그 '/std:c++17'가 필요합니다."가 필요합니다.

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

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

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

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

참고 항목

/Zc(규칙)