Udostępnij przez


Ostrzeżenie kompilatora (poziom 4) C4238

niestandardowe używane rozszerzenie : klasa rvalue używana jako lvalue

Uwagi

Aby uzyskać zgodność z poprzednimi wersjami programu Visual C++, rozszerzenia firmy Microsoft (/Ze) umożliwiają używanie typu klasy jako wartości rvalue w kontekście, który niejawnie lub jawnie przyjmuje jego adres. W niektórych przypadkach, takich jak w poniższym przykładzie, może to być niebezpieczne.

Przykład

Poniższy przykład generuje C4238:

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

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

To użycie powoduje błąd w obszarze zgodności ANSI (/Za).