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