Compartir vía


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 };