Freigeben über


Compilerwarnung (Ebene 4) C4238

nicht standardmäßige Erweiterung verwendet: Klassenwert, der als lvalue verwendet wird

Bemerkungen

Aus Gründen der Kompatibilität mit früheren Versionen von Visual C++ ermöglichen Microsoft-Erweiterungen (/Ze) die Verwendung eines Klassentyps als Wert in einem Kontext, der die Adresse implizit oder explizit akzeptiert. In einigen Fällen, z. B. im folgenden Beispiel, kann dies gefährlich sein.

Beispiel

Im folgenden Beispiel wird C4238 generiert:

// C4238.cpp
// compile with: /W4 /c
struct C {
   C() {}
};

C * pC = &C();   // C4238

Diese Verwendung verursacht einen Fehler unter ANSI-Kompatibilität (/Za).