Advertencia del compilador (nivel 4) C4239
se utilizó una extensión no estándar: "token": conversión de "type" a "type"
El estándar de C++ no permite esta conversión de tipos, pero se permite aquí como extensión. Esta advertencia siempre va seguida de al menos una línea de explicación que describe la regla de idioma que se está infringiendo.
Ejemplos
El ejemplo siguiente genera la advertencia C4239.
// C4239.cpp
// compile with: /W4 /c
struct C {
C() {}
};
void func(void) {
C & rC = C(); // C4239
const C & rC2 = C(); // OK
rC2;
}
La conversión de un tipo entero en un tipo de enumeración no está totalmente permitida.
El ejemplo siguiente genera la advertencia C4239.
// C4239b.cpp
// compile with: /W4 /c
enum E { value };
struct S {
E e : 2;
} s = { 5 }; // C4239
// try the following line instead
// } s = { (E)5 };