/Zc
(규칙)
/Zc
컴파일러 옵션을 사용하여 표준 또는 Microsoft 관련 컴파일러 동작을 지정합니다.
구문
/Zc:
option{,option ...}
단일 /Zc
컴파일러 옵션에서 여러 /Zc
옵션을 쉼표로 구분하여 설정할 수 있습니다. /Zc
동일한 명령에서 옵션을 사용하도록 설정하고 사용하지 않도록 설정하면 마지막으로 표시되는 옵션이 사용됩니다.
설명
Visual Studio에서 표준과 호환되지 않는 C 또는 C++에 대한 확장을 구현한 경우 규칙 옵션을 사용하여 /Zc
표준 준수 또는 Microsoft 관련 동작을 지정할 수 있습니다. 일부 옵션의 경우 기존 코드의 대규모 호환성이 손상되는 변경을 방지하기 위해 Microsoft 관련 동작이 기본값입니다. 다른 경우에 기본값은 보안, 성능 또는 호환성의 개선이 호환성이 손상되는 변경 비용보다 큰 표준 동작입니다. 각 규칙 옵션의 기본 설정은 최신 버전의 Visual Studio에서 변경 될 수 있습니다. 각 규칙 옵션에 대한 자세한 내용은 특정 옵션에 대한 문서를 참조하세요. /permissive-
컴파일러 옵션은 기본적으로 설정되지 않은 규칙 옵션을 해당 규칙 설정으로 암시적으로 설정합니다.
/Zc
컴파일러 옵션은 다음과 같습니다.
옵션 | 동작 |
---|---|
/Zc:__cplusplus[-] |
매크로를 __cplusplus 사용하여 지원되는 표준을 보고합니다. 기본적으로 꺼져 있습니다. |
/Zc:__STDC__ |
매크로를 __STDC__ 사용하여 C 표준이 지원됨을 보고합니다. 기본적으로 꺼져 있습니다. |
/Zc:alignedNew[-] |
C++17에 과도하게 정렬된 동적 할당을 사용하도록 설정합니다. 이상 지정하지 않는 한 /std:c++17 기본적으로 해제됩니다. |
/Zc:auto[-] |
에 대한 새 표준 C++ 의미를 적용합니다 auto . 기본적으로 설정되어 있습니다. |
/Zc:char8_t[-] |
C++20 네이티브 리터럴 u8 지원을 const char8_t 사용하거나 사용하지 않도록 설정합니다. 이상 지정하지 않는 한 /std:c++20 기본적으로 해제됩니다. |
/Zc:checkGwOdr[-] |
에서 /Gw 표준 C++ ODR 위반을 적용합니다. |
/Zc:enumTypes[-] |
형식 추론에 표준 enum C++ 규칙을 사용하도록 설정합니다. 기본적으로 꺼져 있습니다. |
/Zc:externC[-] |
함수에 extern "C" 표준 C++ 규칙을 적용합니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:externConstexpr[-] |
변수에 대한 constexpr 외부 연결을 사용하도록 설정합니다. 기본적으로 꺼져 있습니다. |
/Zc:forScope[-] |
표준 C++ for 범위 지정 규칙을 적용합니다. 기본적으로 설정되어 있습니다. |
/Zc:gotoScope[-] |
지역 변수 초기화에 대한 표준 C++ goto 규칙을 적용합니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:hiddenFriend[-] |
표준 C++ 숨겨진 친구 규칙을 적용합니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:implicitNoexcept[-] |
필수 함수에서 암시적 noexcept 사용을 설정합니다. 기본적으로 설정되어 있습니다. |
/Zc:inline[-] |
COMDAT이거나 내부 링크만 있는 경우 참조되지 않은 함수 또는 데이터를 제거합니다. 기본적으로 꺼져 있습니다. |
/Zc:lambda[-] |
제네릭 람다에서 규칙 모드 구문 검사를 위해 새 람다 프로세서를 사용하도록 설정합니다. 이상 지정하지 않는 한 /std:c++20 기본적으로 해제됩니다. |
/Zc:noexceptTypes[-] |
C++17 noexcept 규칙을 적용합니다. 이상 지정하지 않는 한 /std:c++17 기본적으로 해제됩니다. |
/Zc:nrvo[-] |
선택적 복사를 사용하도록 설정하고 엘리션을 이동합니다. 또는 이후를 지정하지 않는 한 /O2 /permissive- /std:c++20 기본적으로 해제됩니다. |
/Zc:preprocessor[-] |
새로운 준수 전처리기를 사용합니다. 이상 지정하지 않는 한 /std:c11 기본적으로 해제됩니다. |
/Zc:referenceBinding[-] |
UDT 임시는 비컨스트 lvalue 참조에 바인딩되지 않습니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:rvalueCast[-] |
표준 C++ 명시적 형식 변환 규칙을 적용합니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:sizedDealloc[-] |
C++14 전역 크기 할당 취소 함수를 사용하도록 설정합니다. 기본적으로 설정되어 있습니다. |
/Zc:strictStrings[-] |
문자열 리터럴을 변환 또는 wchar_t* 변환하지 char* 않도록 설정합니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:static_assert[-] |
의 엄격한 처리 static_assert 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:templateScope[-] |
표준 C++ 템플릿 매개 변수 섀도 규칙을 적용합니다. 기본적으로 꺼져 있습니다. |
/Zc:ternary[-] |
피연산자 형식에 조건부 연산자 규칙을 적용합니다. 지정하지 않는 한 /permissive- 기본적으로 해제됩니다. |
/Zc:threadSafeInit[-] |
스레드로부터 안전한 로컬 정적 초기화를 사용하도록 설정합니다. 기본적으로 설정되어 있습니다. |
/Zc:throwingNew[-] |
오류 발생을 가정 operator new 합니다. 기본적으로 꺼져 있습니다. |
/Zc:tlsGuards[-] |
TLS 변수 초기화에 대한 런타임 검사를 생성합니다. 기본적으로 설정되어 있습니다. |
/Zc:trigraphs[-] |
삼각을 사용하도록 설정합니다(사용되지 않음, 기본적으로 꺼져 있음). |
/Zc:twoPhase- |
형식이 일치하지 않는 템플릿 구문 분석 동작을 사용합니다(지정된 경우에만 /permissive- 적용되며 기본값은 준수). |
/Zc:wchar_t[-] |
wchar_t 는 typedef가 아닌 네이티브 형식입니다. 기본적으로 설정되어 있습니다. |
/Zc:zeroSizeArrayNew[-] |
개체의 0사이즈 배열에 대한 멤버 new /delete 를 호출합니다. 기본적으로 설정되어 있습니다. |
MSVC의 규칙 문제에 대한 자세한 내용은 비표준 동작을 참조 하세요.