Erro C2681 do compilador
“tipo” : tipo de expressão inválido para nome
Um operador de conversão tentou converter de um tipo inválido. Por exemplo, se você usar o operador dynamic_cast para converter uma expressão em um tipo de ponteiro, a expressão de origem deverá ser um ponteiro.
O seguinte exemplo gera o erro C2681:
// C2681.cpp
class A { virtual void f(); };
void g(int i) {
A* pa;
pa = dynamic_cast<A*>(i); // C2681
}