Freigeben über


/Zc:static_assert (Strenge static_assert Behandlung)

Die /Zc:static_assert Compileroption weist den Compiler an, Aufrufe mit nicht abhängigen Testausdrücken auszuwerten static_assert , wenn Klassen- oder Funktionsvorlagen analysiert werden.

Syntax

/Zc:static_assert
/Zc:static_assert-

Hinweise

Die /Zc:static_assert Compileroption weist den Compiler an, einen static_assert im Textkörper einer Funktionsvorlage oder im Textkörper einer Klassenvorlagenmememmfunktion auszuwerten, wenn der Testausdruck nicht abhängig ist. Wenn der nicht abhängige Testausdruck nicht falsevorhanden ist, gibt der Compiler sofort einen Fehler aus. Wenn der Testausdruck abhängig ist, wird dies static_assert erst ausgewertet, wenn die Vorlage instanziiert wird.

Die /Zc:static_assert Option ist ab Visual Studio 2022, Version 17.1, verfügbar. In früheren Versionen von Visual Studio oder falls /Zc:static_assert- angegeben, wird von Visual Studio keine abhängige Analyse ausgeführt, wenn sich der static_assert Textkörper einer Funktionsvorlage oder im Textkörper einer Memberfunktion einer Klassenvorlage befindet. Stattdessen wird nur ausgewertet static_assert , wenn eine Vorlage instanziiert wird.

Die /permissive- Option aktiviert /Zc:static_assert, sodass sie standardmäßig in Projekten aktiviert ist, die verwendet /std:c++20 werden oder /std:c++latest. Die /Zc:static_assert- Option muss nach einer oder /std:c++latest/permissive- einer /std:c++20Option in der Befehlszeile erfolgen.

Wenn sich der Compiler im C++14-Standardmodus befindet und /permissive- oder /Zc:static_assert angegeben ist, wird das Verhalten verwendet /Zc:static_assert . Wenn ein Vorlagentext jedoch ausgewertet wird static_assert , meldet er auch eine standardmäßige Warnung C5254, "Sprachfeature 'terse static assert' erfordert Compilerflagge '/std:c++17'", da dieses Verhalten erst nach C++17 erforderlich ist.

So legen Sie diese Compileroption in Visual Studio fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Fügen Sie den Bereich "Zusätzliche /Zc:static_assert Optionen" hinzu oder /Zc:static_assert- fügen Sie sie hinzu.

Siehe auch

/Zc (Konformität)