exponenta event banner

Правило AUTOSAR C++ 14 A16-6-1

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

Описание

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

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

Объяснение

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

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

Внедрение Polyspace

Polyspace ® помечает все виды использования #error директива.

Поиск неисправностей

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

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

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