Ошибка компилятора C2683
"cast" : "type" не является полиморфным типом
Нельзя использовать dynamic_cast для преобразования из неполморфного класса (класса без виртуальных функций).
Для преобразования неполморфных типов можно использовать static_cast . static_cast
Однако не выполняет проверку во время выполнения.
Следующий пример приводит к возникновению ошибки C2683:
// C2683.cpp
// compile with: /c
class B { };
class D : public B { };
void f(B* pb) {
D* pd1 = dynamic_cast<D*>(pb); // C2683
D* pd1 = static_cast<D*>(pb); // OK
}