Erro do Compilador C2683
'cast' : 'type' não é um tipo polimórfico
Você não pode usar dynamic_cast para converter de uma classe não polimórfica (uma classe sem funções virtuais).
Você pode usar static_cast para executar conversões de tipos não polimórficos. No entanto, static_cast
não executa uma verificação em tempo de execução.
O seguinte exemplo gera o 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
}