Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 4) C4238

Nepoužité rozšíření: třída rvalue použitá jako hodnota lvalue

Kvůli kompatibilitě s předchozími verzemi visual C++ umožňují rozšíření Microsoftu (/Ze) použít typ třídy jako rvalue v kontextu, který implicitně nebo explicitně přebírá jeho adresu. V některých případech, například v příkladu níže, to může být nebezpečné.

Příklad

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

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

Toto použití způsobí chybu v rámci kompatibility ANSI (/Za).