/Zc:static_assert
(Ścisła obsługa static_assert)
Opcja /Zc:static_assert
kompilatora informuje kompilator o ocenie static_assert
wywołań przy użyciu niezależnych wyrażeń testowych, gdy klasy lub szablony funkcji są analizowane.
Składnia
/Zc:static_assert
/Zc:static_assert-
Uwagi
Począwszy od programu Visual Studio 17.10, /Zc:static_assert
i /Zc:static_assert-
nie mają żadnego wpływu. Obie opcje są ignorowane, aby uniknąć kompilacji powodujących niezgodność, które ich używają.
static_assert
nigdy nie jest obliczana podczas analizowania klas lub szablonów funkcji.
Opcja /Zc:static_assert
kompilatora nakazuje kompilatorowi ocenę static_assert
elementu w treści szablonu funkcji lub w treści funkcji składowej szablonu klasy po pierwszym przeanalizowaniu, jeśli wyrażenie testowe nie jest zależne. Jeśli wyrażenie testowe nie zależne jest false
, kompilator natychmiast emituje błąd. Gdy wyrażenie testowe jest zależne, static_assert
nie jest oceniane, dopóki szablon nie zostanie utworzone.
Opcja /Zc:static_assert
jest dostępna od wersji 17.1 programu Visual Studio 2022. We wcześniejszych wersjach programu Visual Studio lub jeśli /Zc:static_assert-
jest określona, program Visual Studio nie wykonuje analizy zależnej, jeśli static_assert
element znajduje się w treści szablonu funkcji lub w treści funkcji składowej szablonu klasy. Zamiast tego ocenia static_assert
tylko wystąpienie szablonu.
Opcja /permissive-
włącza funkcję /Zc:static_assert
, więc jest domyślnie włączona w projektach korzystających z /std:c++20
programu lub /std:c++latest
. Opcja /Zc:static_assert-
musi pochodzić po /std:c++20
opcji , /std:c++latest
lub /permissive-
w wierszu polecenia.
Jeśli kompilator jest w domyślnym trybie C++14 lub /permissive-
/Zc:static_assert
jest określony, używa /Zc:static_assert
zachowania. Jeśli jednak ocenia element static_assert
w treści szablonu, zgłasza również ostrzeżenie off-by-default C5254, "funkcja języka "terse static assert" wymaga flagi kompilatora "/std:c++17
", ponieważ to zachowanie nie jest wymagane do czasu języka C++17.
Aby ustawić tę opcję kompilatora w programie Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
Dodaj
/Zc:static_assert
lub/Zc:static_assert-
do okienka Dodatkowe opcje: .