Compiler Error C2681


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Error C2681.

type' : invalid expression type for name

A casting operator tried to convert from an invalid type. For example, if you use the dynamic_cast operator to convert an expression to a pointer type, the source expression must be a pointer.

The following sample generates C2681:

// C2681.cpp  
class A { virtual void f(); };  
void g(int i) {  
    A* pa;  
    pa = dynamic_cast<A*>(i);  // C2681