Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4239

niestandardowe rozszerzenie używane: "token" : konwersja z "type" na "type"

Ta konwersja typu nie jest dozwolona przez standard C++, ale jest dozwolona w tym miejscu jako rozszerzenie. To ostrzeżenie zawsze następuje co najmniej jeden wiersz wyjaśnienia opisujący naruszoną regułę języka.

Przykłady

Poniższy przykład generuje kod C4239.

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

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

Konwersja z typu całkowitego na typ wyliczeniowy nie jest ściśle dozwolona.

Poniższy przykład generuje kod 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 };