Bagikan melalui


Compiler Warning (level 4) C4238

ekstensi nonstandar yang digunakan : rvalue kelas yang digunakan sebagai lvalue

Untuk kompatibilitas dengan versi Visual C++sebelumnya, ekstensi Microsoft (/Ze) memungkinkan Anda menggunakan jenis kelas sebagai rvalue dalam konteks yang secara implisit atau eksplisit mengambil alamatnya. Dalam beberapa kasus, seperti contoh di bawah ini, ini bisa berbahaya.

Contoh

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

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

Penggunaan ini menyebabkan kesalahan pada kompatibilitas ANSI (/Za).