Compiler Warning (level 4) C4238
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Compiler Warning (level 4) C4238.
nonstandard extension used : class rvalue used as lvalue
For compatibility with previous versions of Visual C++, Microsoft extensions (/Ze) allow you to use a class type as an rvalue in a context that implicitly or explicitly takes its address. In some cases, such as the example below, this can be dangerous.
// C4238.cpp
// compile with: /W4 /c
struct C {
C() {}
};
C * pC = &C(); // C4238
This usage causes an error under ANSI compatibility (/Za).
Show: