dynamic_cast не должны использоваться
dynamic_cast не следует использовать.
Вы используете dynamic_cast преобразование типа указателя или ссылки на класс вдоль иерархии наследования, например преобразование указателя в базовый класс в указатель на производный класс. Преобразование влечет за собой накладные расходы из-за проверки типа, которая выполняется во время выполнения. Эти накладные расходы не подходят для низкого уровня памяти, скорости и предсказуемой производительности систем реального времени.
Если невозможно избежать динамического литья в приложении, рассмотрите возможность использования пользовательской реализации для выполнения литья. Можно также рассмотреть возможность использования виртуальных функций, если выполняется приведение к наиболее производному классу или статический полиморфизм с перегруженными функциями и шаблонами. В последнем случае типы разрешаются во время компиляции, что позволяет избежать накладных расходов.
Polyspace ® помечает все виды использования dynamic_cast в вашем коде.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Выражения |
| Категория: Консультации, Автоматизированные |