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