Sdílet prostřednictvím


/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 /O2není 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