Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Параметр /Zc:static_assert компилятора сообщает компилятору оценивать static_assert вызовы с независимыми выражениями теста при анализе шаблонов классов или функций.
Синтаксис
/Zc:static_assert
/Zc:static_assert-
Замечания
Начиная с Visual Studio 17.10, /Zc:static_assert и /Zc:static_assert- не влияют. Оба варианта игнорируются, чтобы избежать критических сборок, которые используют их.
static_assert теперь никогда не вычисляется при анализе шаблонов классов или функций.
Параметр /Zc:static_assert компилятора сообщает компилятору оценить static_assert текст шаблона функции или в тексте функции-члена класса при первом анализе, если выражение теста не зависит. Если независимое выражение теста false, компилятор немедленно выдает ошибку. Если тестовое выражение зависит, static_assert он не вычисляется до создания экземпляра шаблона.
Этот /Zc:static_assert параметр доступен начиная с Visual Studio 2022 версии 17.1. В более ранних версиях Visual Studio или /Zc:static_assert- при указании Visual Studio не выполняет зависимый анализ, если static_assert он находится в теле шаблона функции или в теле функции-члена шаблона класса. Вместо этого он оценивается static_assert только при создании экземпляра шаблона.
Параметр /permissive- включает /Zc:static_assert, поэтому он включен по умолчанию в проектах, использующих /std:c++20 или /std:c++latest. Параметр /Zc:static_assert- должен прийти после /std:c++20параметра /std:c++latestили /permissive- параметра в командной строке.
Если компилятор находится в режиме C++14 по умолчанию и /permissive- указан или /Zc:static_assert указан, используется /Zc:static_assert поведение. Однако если он оценивается static_assert в тексте шаблона, он также сообщает о отключенном по умолчанию предупреждении C5254, "функция языка "terse static assert" требует флаг компилятора "/std:c++17", так как это поведение не требуется до C++17.
Установка параметра компилятора в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
Добавьте
/Zc:static_assertили/Zc:static_assert-в область "Дополнительные параметры".