编译器错误 C2681

“type”: 名称的无效表达式类型

强制转换运算符尝试从无效类型进行转换。 例如,如果使用 dynamic_cast 运算符将表达式转换为指针类型,则源表达式必须是指针。

以下示例生成 C2681:

// C2681.cpp
class A { virtual void f(); };

void g(int i) {
    A* pa;
    pa = dynamic_cast<A*>(i);  // C2681
}