/Zc
(Zgodność)
Użyj opcji kompilatora /Zc
, aby określić standardowe lub specyficzne dla firmy Microsoft zachowanie kompilatora.
Składnia
/Zc:
option{,option ...}
Możesz ustawić wiele /Zc
opcji rozdzielonych przecinkami w jednej /Zc
opcji kompilatora. /Zc
Jeśli opcja jest włączona i wyłączona w tym samym poleceniu, jest używana opcja, która jest wyświetlana jako ostatnia.
Uwagi
Jeśli program Visual Studio zaimplementował rozszerzenie dla języka C lub C++, które jest niezgodne ze standardem /Zc
, można użyć opcji zgodności, aby określić zachowanie zgodne ze standardem lub zachowanie specyficzne dla firmy Microsoft. W przypadku niektórych opcji zachowanie specyficzne dla firmy Microsoft jest domyślne, aby zapobiec zmianom powodujących niezgodność na dużą skalę w istniejącym kodzie. W innych przypadkach wartością domyślną jest zachowanie standardowe, w którym ulepszenia zabezpieczeń, wydajności lub zgodności przewyższają koszty zmian powodujących niezgodność. Domyślne ustawienie każdej opcji zgodności może ulec zmianie w nowszych wersjach programu Visual Studio. Aby uzyskać więcej informacji na temat każdej opcji zgodności, zobacz artykuł dotyczący określonej opcji. Opcja kompilatora /permissive-
niejawnie ustawia opcje zgodności, które nie są domyślnie ustawione na ich zgodne ustawienia.
Poniżej przedstawiono opcje kompilatora /Zc
:
Opcja | Zachowanie |
---|---|
/Zc:__cplusplus[-] |
Włącz makro, __cplusplus aby zgłosić obsługiwany standard. Domyślnie wyłączone. |
/Zc:__STDC__ |
Włącz makro, __STDC__ aby zgłosić, że standard C jest obsługiwany. Domyślnie wyłączone. |
/Zc:alignedNew[-] |
Włącz alokację dynamiczną wyrównaną w języku C++17. Domyślnie wyłączone, chyba że /std:c++17 zostanie określony lub nowszy. |
/Zc:auto[-] |
Wymusić nowe znaczenie języka C++ w warstwie Standardowa dla elementu auto . Domyślnie włączona. |
/Zc:char8_t[-] |
Włącz lub wyłącz obsługę literałów natywnych u8 języka C++20 jako const char8_t . Domyślnie wyłączone, chyba że /std:c++20 zostanie określony lub nowszy. |
/Zc:checkGwOdr[-] |
Wymuś naruszenia standardowej funkcji ODR języka C++ w obszarze /Gw . |
/Zc:enumTypes[-] |
Włącz standardowe reguły języka C++ dla enum odliczeń typów. Domyślnie wyłączone. |
/Zc:externC[-] |
Wymuszanie standardowych reguł języka C++ dla extern "C" funkcji. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:externConstexpr[-] |
Włącz połączenie zewnętrzne dla constexpr zmiennych. Domyślnie wyłączone. |
/Zc:forScope[-] |
Wymuszanie standardowych reguł określania zakresu języka C++ for . Domyślnie włączona. |
/Zc:gotoScope[-] |
Wymuszanie standardowych reguł języka C++ goto dotyczących inicjowania zmiennej lokalnej. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:hiddenFriend[-] |
Wymuszaj reguły ukrytego przyjaciela języka C++ w warstwie Standardowa. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:implicitNoexcept[-] |
Włącz niejawne noexcept funkcje wymagane. Domyślnie włączona. |
/Zc:inline[-] |
Usuń niereferencyjne funkcje lub dane, jeśli są one tylko comDAT lub mają połączenie wewnętrzne. Domyślnie wyłączone. |
/Zc:lambda[-] |
Włącz nowy procesor lambda na potrzeby sprawdzania składni trybu zgodności w ogólnych wyrażeniach lambda. Domyślnie wyłączone, chyba że /std:c++20 zostanie określony lub nowszy. |
/Zc:noexceptTypes[-] |
Wymuszanie reguł języka C++17 noexcept . Domyślnie wyłączone, chyba że /std:c++17 zostanie określony lub nowszy. |
/Zc:nrvo[-] |
Włącz opcjonalne kopiowanie i przenoszenie elizji. Domyślnie wyłączone, chyba że /O2 określono wartość , /permissive- lub /std:c++20 nowszą. |
/Zc:preprocessor[-] |
Użyj nowego zgodnego preprocesora. Domyślnie wyłączone, chyba że /std:c11 zostanie określony lub nowszy. |
/Zc:referenceBinding[-] |
Tymczasowe udT nie będzie wiązać się z odwołaniem innej niż lvalue. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:rvalueCast[-] |
Wymuszanie standardowych reguł konwersji typów jawnych języka C++. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:sizedDealloc[-] |
Włącz funkcje cofania wielkości globalnego języka C++14. Domyślnie włączona. |
/Zc:strictStrings[-] |
Wyłącz literał ciągu do char* lub wchar_t* konwersję. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:static_assert[-] |
ścisła obsługa programu static_assert . Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:templateScope[-] |
Wymuszanie reguł cieniowania parametrów szablonu języka C++ w warstwie Standardowa. Domyślnie wyłączone. |
/Zc:ternary[-] |
Wymuszanie reguł operatorów warunkowych dla typów operandów. Domyślnie wyłączone, chyba że /permissive- zostanie określony. |
/Zc:threadSafeInit[-] |
Włącz lokalne inicjowanie statyczne bezpieczne wątkowo. Domyślnie włączona. |
/Zc:throwingNew[-] |
Załóżmy, że operator new zgłaszany jest błąd. Domyślnie wyłączone. |
/Zc:tlsGuards[-] |
Generowanie testów środowiska uruchomieniowego pod kątem inicjowania zmiennej TLS. Domyślnie włączona. |
/Zc:trigraphs[-] |
Włącz trigrafy (przestarzałe, wyłączone domyślnie). |
/Zc:twoPhase- |
Użyj zachowania analizy szablonu niekonformowania (ma zastosowanie tylko wtedy, gdy /permissive- jest określony, który jest domyślnie zgodny). |
/Zc:wchar_t[-] |
wchar_t jest typem natywnym, a nie typedef. Domyślnie włączona. |
/Zc:zeroSizeArrayNew[-] |
Wywołaj element członkowski new /delete dla tablic o rozmiarze 0 obiektów. Domyślnie włączona. |
Aby uzyskać więcej informacji na temat problemów ze zgodnością w programie MSVC, zobacz Zachowanie niezgodne.
Zobacz też
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC