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