/Zc (Megfelelőség)

/Zc A fordító beállításaival szabványos vagy Microsoft-specifikus fordítói viselkedést adhat meg.

Szemantika

/Zc: option{,option ...}

Egyetlen fordítóbeállításban /Zc vesszővel elválasztva több /Zc beállítást is megadhat. Ha egy /Zc beállítás engedélyezve van és le van tiltva ugyanabban a parancsban, a rendszer az utolsóként megjelenő beállítást használja.

Megjegyzések

Ha a Visual Studio olyan C vagy C++ kiterjesztést implementált, amely nem kompatibilis a szabványsal, a szabványnak megfelelő vagy a Microsoft-specifikus viselkedés megadásához használhat megfelelőségi /Zc beállítást. Bizonyos beállítások esetében a Microsoft-specifikus viselkedés az alapértelmezett, amely megakadályozza a meglévő kód nagy léptékű kompatibilitástörő módosításait. Más esetekben az alapértelmezett a szokásos viselkedés, ahol a biztonság, a teljesítmény vagy a kompatibilitás javítása meghaladja a kompatibilitástörő változások költségeit. Az egyes megfelelőségi beállítások alapértelmezett beállítása a Visual Studio újabb verzióiban változhat. Az egyes megfelelőségi lehetőségekről további információt az adott beállításról szóló cikkben talál. A /permissive- fordítási beállítás implicit módon beállítja az alapértelmezés szerint nem beállított megfelelőségi beállításokat a megfelelő beállításokra.

A fordító beállításai a /Zc következők:

Lehetőség Magatartás
/Zc:__cplusplus[-] Engedélyezze a makró számára __cplusplus a támogatott szabvány jelentésének engedélyezését. Alapértelmezés szerint ki van kapcsolva.
/Zc:__STDC__ A makró engedélyezése a __STDC__ C szabvány jelentéséhez támogatott. Alapértelmezés szerint ki van kapcsolva.
/Zc:alignedNew[-] Engedélyezze a C++17 túl igazított dinamikus lefoglalást. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /std:c++17 megadva újabb vagy újabb.
/Zc:auto[-] Az új Standard C++ jelentés kényszerítése a következőhöz auto: . Alapértelmezés szerint be van kapcsolva.
/Zc:char8_t[-] Engedélyezze vagy tiltsa le a C++20 natív konstans u8 támogatását.const char8_t Alapértelmezés szerint ki van kapcsolva, hacsak nincs /std:c++20 megadva újabb vagy újabb.
/Zc:checkGwOdr[-] Standard C++ ODR-szabálysértések kényszerítése a (z /Gw) .
/Zc:enumTypes[-] Engedélyezze a standard C++ szabályokat a típuslevonáshoz enum . Alapértelmezés szerint ki van kapcsolva.
/Zc:externC[-] Standard C++ szabályok kényszerítése függvényekhez extern "C" . Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:externConstexpr[-] Külső csatolás engedélyezése változókhoz constexpr . Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:forScope[-] Standard C++ for hatókörkezelési szabályok kényszerítése. Alapértelmezés szerint be van kapcsolva.
/Zc:gotoScope[-] Standard C++ goto szabályok kényszerítése a helyi változó inicializálása körül. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:hiddenFriend[-] Standard C++ rejtett barátszabályok kényszerítése. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:implicitNoexcept[-] noexcept Implicit engedélyezése a szükséges függvényeken. Alapértelmezés szerint be van kapcsolva.
/Zc:inline[-] Távolítsa el a nem hivatkozott függvényeket vagy adatokat, ha COMDAT vagy csak belső kapcsolat van bennük. Alapértelmezés szerint ki van kapcsolva.
/Zc:lambda[-] Engedélyezze az új lambda processzort a konformitásmódú szintaktikai ellenőrzésekhez az általános lambdákban. Alapértelmezés szerint ki van kapcsolva, kivéve, ha /permissive- vagy /std:c++20 később van megadva.
/Zc:noexceptTypes[-] C++17 noexcept szabályok kényszerítése. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /std:c++17 megadva újabb vagy újabb.
/Zc:nrvo[-] Engedélyezze az opcionális másolást és az elisions áthelyezését. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /O2megadva , /permissive-vagy /std:c++20 újabb.
/Zc:preprocessor[-] Használja az új megfelelő előfeldolgozót. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /std:c11 megadva újabb vagy újabb.
/Zc:referenceBinding[-] Az UDT-ideiglenesek nem kötnek nem konconst lvalue referenciához. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:rvalueCast[-] Standard C++ explicit típusú konverziós szabályok kényszerítése. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:sizedDealloc[-] Engedélyezze a C++14 globális méretű felszabadítási függvényeket. Alapértelmezés szerint be van kapcsolva.
/Zc:strictStrings[-] Sztringkonstans letiltása vagy char*wchar_t* konvertálása. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:static_assert[-] szigorú kezelése static_assert. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:templateScope[-] Standard C++ sablonparaméter árnyékolási szabályainak kényszerítése. Alapértelmezés szerint ki van kapcsolva.
/Zc:ternary[-] Feltételes operátorszabályok kényszerítése operandustípusokra. Alapértelmezés szerint ki van kapcsolva, hacsak nincs /permissive- megadva.
/Zc:threadSafeInit[-] Engedélyezze a szálbiztos helyi statikus inicializálást. Alapértelmezés szerint be van kapcsolva.
/Zc:throwingNew[-] Tegyük fel, hogy operator new hiba történt. Alapértelmezés szerint ki van kapcsolva.
/Zc:tlsGuards[-] Futásidejű ellenőrzések létrehozása a TLS-változó inicializálásához. Alapértelmezés szerint be van kapcsolva.
/Zc:trigraphs[-] Trigráfok engedélyezése (elavult, alapértelmezés szerint kikapcsolva).
/Zc:twoPhase- Használjon nem konformáló sablonelemzési viselkedést (csak akkor, ha /permissive- meg van adva, és ez az alapértelmezett beállítás).
/Zc:wchar_t[-] wchar_t natív típus, nem típusdef. Alapértelmezés szerint be van kapcsolva.
/Zc:zeroSizeArrayNew[-] new / delete 0 méretű objektumtömbök hívása tagként. Alapértelmezés szerint be van kapcsolva.

Az MSVC megfelelőségi problémáival kapcsolatos további információkért lásd: Nem megfelelő viselkedés.

Lásd még

MSVC-fordító beállításai
MSVC-fordító parancssori szintaxisa