コンパイラの警告 (レベル 4) C4239

非標準の拡張機能が使用されています: 'token': 'type' から 'type' への変換

この型変換は C++ 標準では許可されていませんが、ここでは拡張機能として使用できます。 この警告には、違反している言語規則に関する 1 行以上の説明が続きます。

次の例では 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 };