являются безопасными для удаления Dynamic_Casts для удаления в производственном коде?

Dynamic_Cast медленнее, но они безопаснее, чем STatic_cast S ( При использовании с иерархиями объекта, конечно). Мой вопрос, после того, как я обеспечил в моем коде отладки, что все (динамические) отливки верны, есть ли какие-либо причины для меня не изменить их на STATIC_CACT S?

Я планирую сделать это со следующей конструкцией. (Кстати, можете ли вы думать о лучшем имени, чем Assert_cast ? Может быть, Debug_cast ?)

#if defined(NDEBUG)

    template
    T assert_cast(U other) {
        return static_cast(other);
    }

#else

    template
    T assert_cast(U other) {
        return dynamic_cast(other);
    }

#endif

Редактировать: Уже есть что-то для этого: Polymorphic_Downcast . Благодаря плазмаху за то, что указываю на это.

9
задан Paul Manta 9 September 2011 в 10:27
поделиться