/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 false
vorhanden 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++20
Option 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
Ö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).
Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.
Fügen Sie den Bereich "Zusätzliche
/Zc:static_assert
Optionen" hinzu oder/Zc:static_assert-
fügen Sie sie hinzu.