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