AUTOSAR C++14 Rule A16-6-1

Директива # ошибка не должна использоваться

Описание

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

Директива # ошибка не должна использоваться.

Объяснение

Обычно вы используете #error директива путем объединения ее с #if или аналогичную директиву, чтобы сделать компиляцию неудачной и выдать сообщение, когда условие не выполнено. Однако применить нельзя #error в шаблоны. Директивы препроцессора не подчиняются редактированию, проверке типа, перегрузке и другим функциям C++ и #error не будет считаться вычетом из шаблона по экземплярам.

Вместо этого используйте static_assert для проверки ошибок во время компиляции. Статические утверждения обеспечивают все преимущества функций C++ и делают код более ясным.

Реализация Polyspace

Polyspace® флаги всех видов использования #error директива.

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

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

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

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