Dela via


/Zc (Överensstämmelse)

Använd kompilatoralternativen /Zc för att ange standard- eller Microsoft-specifikt kompilatorbeteende.

Syntax

/Zc: option{,option ...}

Du kan ange flera /Zc alternativ avgränsade med kommatecken i ett enda /Zc kompilatoralternativ. Om ett /Zc alternativ är aktiverat och inaktiverat i samma kommando används det alternativ som visas sist.

Anmärkningar

När Visual Studio har implementerat ett tillägg till C eller C++ som är inkompatibelt med standarden kan du använda ett /Zc överensstämmelsealternativ för att ange standard- eller Microsoft-specifikt beteende. För vissa alternativ är Det Microsoft-specifika beteendet standard för att förhindra storskaliga icke-bakåtkompatibla ändringar i befintlig kod. I andra fall är standardinställningen standardbeteendet, där förbättringar av säkerhet, prestanda eller kompatibilitet uppväger kostnaderna för icke-bakåtkompatibla ändringar. Standardinställningen för varje överensstämmelsealternativ kan ändras i nyare versioner av Visual Studio. Mer information om varje överensstämmelsealternativ finns i artikeln om det specifika alternativet. Kompileringsalternativet /permissive- anger implicit de kompatibilitetsalternativ som inte anges som standard till deras kompatibilitetsinställningar.

Här är kompilatoralternativen /Zc :

Option Beteende
/Zc:__cplusplus[-] Aktivera makrot __cplusplus för att rapportera den standard som stöds. Av som standard.
/Zc:__STDC__ Aktivera makrot __STDC__ för att rapportera att C-standarden stöds. Av som standard.
/Zc:alignedNew[-] Aktivera överjusterad dynamisk allokering med C++17. Inaktivera som standard om inte /std:c++17 eller senare har angetts.
/Zc:auto[-] Framtvinga den nya standard-C++-innebörden för auto. På som standard.
/Zc:char8_t[-] Aktivera eller inaktivera inbyggt u8 stöd för C++20-literaler som const char8_t. Inaktivera som standard om inte /std:c++20 eller senare har angetts.
/Zc:checkGwOdr[-] Framtvinga Standard C++ ODR-överträdelser under /Gw.
/Zc:enumTypes[-] Aktivera C++-standardregler för enum typavdrag. Av som standard.
/Zc:externC[-] Framtvinga C++-standardregler för extern "C" funktioner. Inaktivera som standard om inte /permissive- anges.
/Zc:externConstexpr[-] Aktivera extern länkning för constexpr variabler. Av som standard.
/Zc:forScope[-] Framtvinga omfångsregler för Standard C++ for . På som standard.
/Zc:gotoScope[-] Framtvinga C++ goto -standardregler kring initiering av lokala variabler. Inaktivera som standard om inte /permissive- anges.
/Zc:hiddenFriend[-] Framtvinga standardregler för C++-dolda vänner. Inaktivera som standard om inte /permissive- anges.
/Zc:implicitNoexcept[-] Aktivera implicita noexcept funktioner som krävs. På som standard.
/Zc:inline[-] Ta bort orefererade funktioner eller data om de är COMDAT eller endast har intern länkning. Av som standard.
/Zc:lambda[-] Aktivera ny lambda-processor för syntaktiska kontroller i överensstämmelseläge i generiska lambdas. Inaktivera som standard såvida inte /permissive- eller /std:c++20 senare anges.
/Zc:noexceptTypes[-] Framtvinga C++17-regler noexcept . Inaktivera som standard om inte /std:c++17 eller senare har angetts.
/Zc:nrvo[-] Aktivera valfri kopiering och flytta elisions. Inaktivera som standard om inte /O2, /permissive-eller /std:c++20 senare har angetts.
/Zc:preprocessor[-] Använd den nya förprocessorn. Inaktivera som standard om inte /std:c11 eller senare har angetts.
/Zc:referenceBinding[-] En TILLFÄLLIG UDT binder inte till en referens för icke-konst lvalue. Inaktivera som standard om inte /permissive- anges.
/Zc:rvalueCast[-] Framtvinga explicita konverteringsregler av typen Standard C++. Inaktivera som standard om inte /permissive- anges.
/Zc:sizedDealloc[-] Aktivera frigöringsfunktioner av global storlek för C++14. På som standard.
/Zc:strictStrings[-] Inaktivera strängliteral till char* eller wchar_t* konvertering. Inaktivera som standard om inte /permissive- anges.
/Zc:static_assert[-] strikt hantering av static_assert. Inaktivera som standard om inte /permissive- anges.
/Zc:templateScope[-] Framtvinga skuggningsregler för Standard C++-mallparameter. Av som standard.
/Zc:ternary[-] Framtvinga villkorsstyrda operatorregler för operandtyper. Inaktivera som standard om inte /permissive- anges.
/Zc:threadSafeInit[-] Aktivera trådsäker lokal statisk initiering. På som standard.
/Zc:throwingNew[-] Anta att operator new det uppstår fel. Av som standard.
/Zc:tlsGuards[-] Generera körningskontroller för initiering av TLS-variabler. På som standard.
/Zc:trigraphs[-] Aktivera trigraphs (föråldrad, inaktiverad som standard).
/Zc:twoPhase- Använd icke-konforma mallparsningsbeteende (gäller endast när /permissive- anges, vilket är standard för att överensstämma).
/Zc:wchar_t[-] wchar_t är en intern typ, inte en typedef. På som standard.
/Zc:zeroSizeArrayNew[-] Anropa medlem new/delete för 0-storleksmatriser med objekt. På som standard.

Mer information om efterlevnadsproblem i MSVC finns i Beteende som inte är standard.

Se även

Alternativ för MSVC-kompilator
Kommandoradssyntax för MSVC-kompilatorn