コンパイラの警告 (レベル 4) C4238

非標準の拡張機能が使用されています: rvalue クラスが lvalue として使用されています

以前のバージョンの Visual C++ との互換性のために、Microsoft 拡張機能 (/Ze) では、暗黙的または明示的にそのアドレスを取るコンテキストで、クラス型を右辺値として使用できます。 次の例のように、場合によっては、これは危険である可能性があります。

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

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

この使用法は、ANSI 互換 (/Za) ではエラーになります。