Оценка операнда к оператору идентификатора типа не должна содержать побочные эффекты.
Оценка операнда к оператору идентификатора типа не должна содержать побочные эффекты.
typeid
оператор оценивает свой операнд, только если это - вызов функции, которая возвращает ссылку на полиморфный тип (полиморфный тип является типом класса, который содержит виртуальные функции). Во всех других случаях, выражения, предоставленные typeid
оператор не оценен.
Для кода, который легче обеспечить, избегайте выражений с побочными эффектами в целом при использовании typeid
оператор. Вы или другой разработчик будете сохранены от разыскивания компонентов выражения к их определениям и определения, если побочные эффекты на самом деле произойдут.
Средство проверки отмечает typeid
операторы с выражениями, тип которых может быть определен только во время выполнения. Все такие выражения приняты, чтобы иметь побочные эффекты.
Состояния сообщения средства проверки, выполнено ли выражение или проигнорировано. Если выражение выполнено, и вы хотите сохранить выражение в typeid
операция вместо того, чтобы выполнить оценку в отдельном операторе, добавляют комментарии к вашему результату или код, чтобы избежать другого анализа. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Выражения |
Категория: необходимый, неавтоматизированный |