Объявление функции отсутствия метания должно содержать спецификацию noexcept
Объявление функции отсутствия метания должно содержать спецификацию noexcept.
Определение функций, которые не вызывают исключений при помощи спецификатора noexcept
или noexcept(true)
позволяет компилятору выполнить определенные оптимизации для этих функций, такие как опускание процесса обработки исключений. Установка спецификации функций для исключений четко сообщает, что вы ожидаете, что функции не будут вызывать исключений.
Задайте функции, которые не вызывают исключений при помощи спецификатора noexcept
. Если спецификация исключения функции зависит от аргумента шаблона, используйте noexcept(<condition>)
. Если спецификация исключения функции неизвестна, предположим, что она вызывает исключения.
Polyspace® помечает определение вызываемой сущности, такого как функция, шаблон класса или функции или конструкторы классов, если следующее имеет значение true:
Определена вызываемая сущность. Polyspace не помечает функции, которые объявлены, но не определены. Polyspace проверяет шаблоны функций или классов, которые имеют по крайней мере один экземпляр.
Вызываемая сущность не вызывает никаких исключений. В случае шаблонов классов и функций, по крайней мере, один экземпляр не вызывает исключения. При проверке вызываемых сущностей на исключения, Polyspace принимает внешние функции без определений, так же как noexcept(true)
. Для получения дополнительной информации о том, как Polyspace проверяет, вызывает ли вызываемую сущность исключение, смотрите раздел «Реализация Polyspace» AUTOSAR C++14 Rule A15-4-2
.
Вызываемая сущность не имеет спецификации исключений.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Обработка исключений |
Категория: Необходимый, Автоматизированный |