编译器警告(等级 4)C4239

使用了非标准扩展:“token”:从“type”转换为“type”

C++ 标准不允许这种类型转换,但在此处允许它作为扩展。 此警告总是后跟至少一行说明,描述违反的语言规则。

示例

下面的示例生成 C4239。

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

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

严格禁止从整型类型转换为枚举类型。

下面的示例生成 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 };