Aviso do compilador (nível 4) C4239

 

Publicado: abril de 2016

extensão não padrão usada: “token”: conversão do tipo “” a “tipo”

Essa conversão de tipos não é permitida por padrão do C++, mas é permitida aqui como uma extensão. Esse aviso é sempre seguido por pelo menos uma linha de explicação que descreve a regra de idioma que está sendo violada.

Exemplo

O exemplo a seguir produz C4239.

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

void func(void) {
   C & rC = C();   // C4239
   const C & rC2 = C();   // OK
   rC2;
}

Exemplo

A conversão do tipo integral para tipo de enum não é permitida restrita.

O exemplo a seguir produz 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 };
Mostrar: