Функции, объявленные с [[noreturn]] атрибут, не должны возвращаться.
Функции, объявленные с [[noreturn]] атрибут, не должны возвращаться.
Если вы объявляете функцию при помощи [[noreturn]] припишите, компилятор ожидает, что функция не возвращает поток выполнения. Таким образом, если [[noreturn]] функциональный f() называется от main(), затем компилятор ожидает, что поток выполнения не возвращен в main(). Если такая функция в конечном счете возвращает поток выполнения, это приводит к неопределенному поведению, которое может быть использовано, чтобы вызвать нарушения целостности данных.
Если функция не имеет никакого return оператор, затем итоговая закрывающая фигурная скобка функции подразумевает неявный return. Исключение return оператор в функции не препятствует тому, чтобы поток выполнения возвратился. [[noreturn]] функция может запретить возврат потока выполнения к функции вызова:
Ввод бесконечного цикла
Повышение исключения
Вызов другого [[noreturn]] функция
Если функция, заданная как [[noreturn]] возвращает поток управления в его вызывающую сторону, Polyspace® отмечает [[noreturn]] функция.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: объявление |
| Категория: необходимый, автоматизированный |