AUTOSAR C++14 Rule A0-1-5

Не должно быть неиспользованных именованных параметров в наборе параметров для виртуальной функции и всех функций, которые его переопределяют

Описание

Определение правила

Не должно быть неиспользованных именованных параметров в наборе параметров для виртуальной функции и всех функций, которые ее переопределяют.

Объяснение

Неиспользованные параметры могут указать, что код, возможно, неполен. Параметр, возможно, предназначен для операции, которую вы забыли кодировать.

Правило фокусируется на виртуальных функциях, потому что все функции, которые переопределяют виртуальную функцию, должны иметь ту же сигнатуру, что и виртуальная функция, включая количество и тип параметров. Если параметр действительно не требуется, проблема может каскадировать от исходной функции ко всем переопределяющим функциям.

Однако в переопределяющей функции у вас может не быть необходимости в определенном параметре. Можно оставить этот параметр неназванным. Это правило обеспечивает соблюдение соглашения о том, что неиспользованные параметры остаются неназванными.

Реализация Polyspace

Для каждой виртуальной функции чекер просматривает все переопределения функции. Если у переопределения есть именованный параметр, который не используется, проверка показывает нарушение исходной виртуальной функции и приводит переопределение как поддерживающее событие.

Обратите внимание, что Polyspace проверяет неиспользуемые параметры в виртуальных функциях в единичных модулях преобразования. Например, если базовый класс содержит виртуальный метод с неиспользованным параметром, но производная реализация класса метода использует этот параметр, правило не нарушается. Однако, если базовый класс и производный класс определены в разных файлах, чекер, который работает с файлами по файлам, помечает нарушение этого правила на базовом классе.

Шашка не помечает неиспользованные параметры в функциях с пустыми телами.

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Проверяйте информацию

Группа: Языковые независимые вопросы
Категория: Необходимый, Автоматизированный
Введенный в R2020a