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