Директива #error не должна использоваться
Директива #error не должна использоваться.
Вы обычно используете #error
директива путем объединения его с #if
или подобная директива, чтобы заставить компиляцию перестать работать и выпустить сообщение, когда условие не соблюдают. Однако вы не можете применить #error
к шаблонам. Директивы препроцессору не выполняют рычажное устройство, вводят средство проверки, перегрузку и другие функции C++ и #error
не будет оценен как вычет шаблона на экземпляр.
Вместо этого используйте static_assert
для проверки ошибки времени компиляции. Статические утверждения предоставляют все преимущества функций C++ и делают код более ясным.
Polyspace® отмечает все использование #error
директива.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Предварительная обработка директив |
Категория: необходимый, автоматизированный |