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