BDA> Сама его идея — оператор, который будет работать только при заданных опциях сборки проекта — уродлива. В других языках, где RTTI неотключаем, это делается изящным оператором as. Для всего остального есть (T).
эээ... ты о чем??
dynamic_cast это обязательная часть стандарта, он "неотключаем".
В стандарте есть понятие "polymorphic type", dynamic_cast работает только на них, а программист понимает, что делая класс polymorphic он может платить определеннубю цену.
Это исключительно расширение компилятора -- позволить отключить RTTI. Компилятор с такой опцией включенной не удовлетворяет стандарту.