/Zc
(Shoda)
Pomocí možností kompilátoru /Zc
můžete určit standardní nebo specifické chování kompilátoru od Microsoftu.
Syntaxe
/Zc:
option{,option ...}
V jedné /Zc
možnosti kompilátoru můžete nastavit více /Zc
možností oddělených čárkami. /Zc
Pokud je možnost povolená a zakázaná ve stejném příkazu, použije se možnost, která se zobrazí jako poslední.
Poznámky
Pokud sada Visual Studio implementovala rozšíření jazyka C nebo C++, které není kompatibilní se standardem, můžete pomocí /Zc
možnosti shody určit standardní chování nebo chování specifické pro Microsoft. U některých možností je chování specifické pro Microsoft výchozí, aby se zabránilo rozsáhlým zásadním změnám existujícího kódu. V jiných případech je výchozím chováním standardní chování, kdy vylepšení zabezpečení, výkonu nebo kompatibility převáží náklady na zásadní změny. Výchozí nastavení každé možnosti shody se může změnit v novějších verzích sady Visual Studio. Další informace o jednotlivých možnostech shody najdete v článku o konkrétní možnosti. Možnost /permissive-
kompilátoru implicitně nastaví možnosti shody, které nejsou ve výchozím nastavení nastaveny na odpovídající nastavení.
Tady jsou možnosti kompilátoru /Zc
:
Možnost | Chování |
---|---|
/Zc:__cplusplus[-] |
__cplusplus Povolte makro pro hlášení podporovaného standardu. Ve výchozím nastavení je vypnuto. |
/Zc:__STDC__ |
__STDC__ Umožňuje, aby makro hlásilo standard jazyka C. Ve výchozím nastavení je vypnuto. |
/Zc:alignedNew[-] |
Povolte dynamické přidělování zarovnané do C++17. Ve výchozím nastavení je vypnuto, pokud /std:c++17 není zadán nebo později. |
/Zc:auto[-] |
Vynucujte nový význam standardu C++ pro auto . Zapnuto ve výchozím nastavení. |
/Zc:char8_t[-] |
Povolení nebo zakázání nativní u8 podpory literálů C++20 jako const char8_t . Ve výchozím nastavení je vypnuto, pokud /std:c++20 není zadán nebo později. |
/Zc:checkGwOdr[-] |
Vynucujte porušení standardu ODR jazyka C++ v části /Gw . |
/Zc:enumTypes[-] |
Povolte standardní pravidla C++ pro enum odpočty typů. Ve výchozím nastavení je vypnuto. |
/Zc:externC[-] |
Vynucujte standardní pravidla jazyka C++ pro extern "C" funkce. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:externConstexpr[-] |
Povolte externí propojení pro constexpr proměnné. Ve výchozím nastavení je vypnuto. |
/Zc:forScope[-] |
Vynucujte pravidla oborů standardního jazyka C++ for . Zapnuto ve výchozím nastavení. |
/Zc:gotoScope[-] |
Vynucujte standardní pravidla C++ goto kolem inicializace místních proměnných. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:hiddenFriend[-] |
Vynucujte skrytá pravidla C++ standardu C++. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:implicitNoexcept[-] |
Povolte implicitní noexcept u požadovaných funkcí. Zapnuto ve výchozím nastavení. |
/Zc:inline[-] |
Odeberte neodkazované funkce nebo data, pokud jsou to COMDAT nebo mají pouze interní propojení. Ve výchozím nastavení je vypnuto. |
/Zc:lambda[-] |
Povolte nový procesor lambda pro syntaktické kontroly v obecných lambdach v režimu shody. Ve výchozím nastavení je vypnuto, pokud /std:c++20 není zadán nebo později. |
/Zc:noexceptTypes[-] |
Vynucujte pravidla C++17 noexcept . Ve výchozím nastavení je vypnuto, pokud /std:c++17 není zadán nebo později. |
/Zc:nrvo[-] |
Povolte volitelné kopírování a přesouvání elizí. Ve výchozím nastavení je vypnuto, pokud /O2 není zadáno , /permissive- nebo /std:c++20 novější. |
/Zc:preprocessor[-] |
Použijte nový preprocesor odpovídající. Ve výchozím nastavení je vypnuto, pokud /std:c11 není zadán nebo později. |
/Zc:referenceBinding[-] |
Dočasný objekt UDT se neváže na nekonstový odkaz lvalue. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:rvalueCast[-] |
Vynucujte pravidla explicitního převodu standardního typu C++. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:sizedDealloc[-] |
Povolte funkce zrušení přidělení globální velikosti C++14. Zapnuto ve výchozím nastavení. |
/Zc:strictStrings[-] |
Zakažte řetězcový literál nebo char* wchar_t* převod. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:static_assert[-] |
striktní zacházení s static_assert . Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:templateScope[-] |
Vynucujte pravidla stínování standardních parametrů šablony C++. Ve výchozím nastavení je vypnuto. |
/Zc:ternary[-] |
Vynucujte pravidla podmíněného operátoru pro typy operandů. Ve výchozím nastavení je vypnuto, pokud /permissive- není zadáno. |
/Zc:threadSafeInit[-] |
Povolte místní statickou inicializaci bezpečnou pro přístup z více vláken. Zapnuto ve výchozím nastavení. |
/Zc:throwingNew[-] |
Předpokládejme operator new , že dojde k selhání. Ve výchozím nastavení je vypnuto. |
/Zc:tlsGuards[-] |
Generování kontrol modulu runtime pro inicializaci proměnné PROTOKOLU TLS Zapnuto ve výchozím nastavení. |
/Zc:trigraphs[-] |
Povolte trigrafy (zastaralé, ve výchozím nastavení vypnuté). |
/Zc:twoPhase- |
Použijte nekonformní chování analýzy šablony (platí pouze v /permissive- případě, že je zadáno, které výchozí nastavení odpovídá). |
/Zc:wchar_t[-] |
wchar_t je nativní typ, nikoli typedef. Zapnuto ve výchozím nastavení. |
/Zc:zeroSizeArrayNew[-] |
Volání člena new /delete pro 0-velikost pole objektů. Zapnuto ve výchozím nastavení. |
Další informace o problémech s shodami v MSVC naleznete v tématu Nestandardní chování.
Viz také
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC