/Zc:static_assert
(Striktní zpracování static_assert)
Možnost /Zc:static_assert
kompilátoru říká kompilátoru, aby při analýze tříd nebo šablon funkcí vyhodnocoval static_assert
volání pomocí nezávislosti na testovacích výrazech.
Syntaxe
/Zc:static_assert
/Zc:static_assert-
Poznámky
Možnost /Zc:static_assert
kompilátoru říká kompilátoru, aby při první analýze vyhodnotil static_assert
v těle šablony funkce nebo v těle členské funkce šablony třídy, pokud testovací výraz není závislý. Pokud není závislý testovací výraz false
, kompilátor okamžitě vygeneruje chybu. Pokud je testovací výraz závislý, nevyhodnocuje se, static_assert
dokud se nevyhodnotí instance šablony.
Tato /Zc:static_assert
možnost je dostupná od sady Visual Studio 2022 verze 17.1. V dřívějších verzích sady Visual Studio nebo pokud /Zc:static_assert-
je zadána, Visual Studio neprovádí závislé analýzy, pokud static_assert
je v těle šablony funkce nebo v těle členské funkce šablony třídy. Místo toho vyhodnotí static_assert
pouze instanci šablony.
Tato /permissive-
možnost povolí /Zc:static_assert
, takže je ve výchozím nastavení zapnutá v projektech, které používají /std:c++20
nebo /std:c++latest
. Tato /Zc:static_assert-
možnost musí pocházet za parametrem , /std:c++latest
nebo /permissive-
na příkazovém /std:c++20
řádku.
Pokud je kompilátor ve výchozím režimu C++14 nebo /permissive-
/Zc:static_assert
je zadaný, použije /Zc:static_assert
chování. Pokud ale vyhodnocuje static_assert
v těle šablony, hlásí také upozornění C5254 mimo výchozí nastavení, "funkce jazyka terse static assert" vyžaduje příznak kompilátoru "/std:c++17
", protože toto chování není nutné, dokud C++17.
Nastavení této možnosti kompilátoru v sadě Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
Přidejte
/Zc:static_assert
nebo/Zc:static_assert-
do podokna Další možnosti: