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