Compilerwarnung (Ebene 1) C4541

"Operator" für polymorphen Typ "Typ" mit /GR- verwendet; kann zu unvorhersehbarem Verhalten führen

Bemerkungen

Sie haben versucht, den dynamic_cast Operator oder typeid Operator zu verwenden, der Run-Time Type Information (RTTI) erfordert, ohne ihn zu aktivieren. Um RTTI zu aktivieren, kompilieren Sie es mit /GR.

Example

Im folgenden Beispiel wird C4541 generiert:

// C4541.cpp
// compile with: /W1 /GR-

#include <typeinfo>

struct Base
{
    virtual ~Base() {}
};

struct Derived : Base {};

int main()
{
    Derived derived;
    Base* pointer_to_base = &derived;

    dynamic_cast<Derived*>(pointer_to_base);   // C4541

    typeid(*pointer_to_base);   // C4541
    typeid(pointer_to_base);    // OK
}