Avertissement du compilateur (niveau 4) C4238
extension non standard utilisée : classe rvalue utilisée comme lvalue
Pour la compatibilité avec les versions précédentes de Visual C++, les extensions Microsoft (/Ze) vous permettent d’utiliser un type de classe comme rvalue dans un contexte qui prend implicitement ou explicitement son adresse. Dans certains cas, comme l’exemple ci-dessous, cela peut être dangereux.
Exemple
// C4238.cpp
// compile with: /W4 /c
struct C {
C() {}
};
C * pC = &C(); // C4238
Cette utilisation provoque une erreur sous compatibilité ANSI (/Za).