Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Alternativet /Zc:static_assert kompilator instruerar kompilatorn att utvärdera static_assert-anrop med icke-beroende testuttryck när klass- eller funktionsmallar parsas.
Syntax
/Zc:static_assert
/Zc:static_assert-
Anmärkningar
Från och med Visual Studio 17.10 har /Zc:static_assert och /Zc:static_assert- ingen effekt. Båda alternativen ignoreras för att undvika icke-bakåtkompatibla versioner som använder dem.
static_assert utvärderas nu aldrig när du parsar klass- eller funktionsmallar.
Alternativet /Zc:static_assert kompilator instruerar kompilatorn att utvärdera en static_assert i brödtexten i en funktionsmall eller i brödtexten i en medlemsfunktion för en klassmall när den först parsas, om testuttrycket inte är beroende. Om det icke-beroende testuttrycket är falsegenererar kompilatorn ett fel omedelbart. När testuttrycket är beroende utvärderas inte static_assert förrän mallen instansieras.
Alternativet /Zc:static_assert är tillgängligt från och med Visual Studio 2022 version 17.1. I tidigare versioner av Visual Studio, eller om /Zc:static_assert- anges, utför Visual Studio inte beroende analys om static_assert finns i brödtexten i en funktionsmall eller i brödtexten för en medlemsfunktion i en klassmall. I stället utvärderas bara static_assert när en mall instansieras.
Alternativet /permissive- aktiverar /Zc:static_assert, så det är aktiverat som standard i projekt som använder /std:c++20 eller /std:c++latest. Alternativet /Zc:static_assert- måste komma efter ett /std:c++20, /std:c++latesteller /permissive- på kommandoraden.
Om kompilatorn är i standardläget C++14 och /permissive- eller /Zc:static_assert anges används /Zc:static_assert beteende. Men om den utvärderar en static_assert i en malltext, rapporterar den också off-by-default varning C5254, "språkfunktionen "terse static assert" kräver kompilatorflaggan/std:c++17", eftersom det här beteendet inte krävs förrän C++17.
Ange det här kompilatoralternativet i Visual Studio
Öppna dialogrutan egenskapssidor för projektet. Mer information finns i Ange C++-kompilator- och byggegenskaper i Visual Studio.
Välj egenskapssidan Konfigurationsegenskaper>C/C++>kommandorad.
Lägg till
/Zc:static_asserteller/Zc:static_assert-i fönstret Ytterligare alternativ:.