コンパイラの警告 (レベル 4、オフ) C4365

'action': 'type_1' から 'type_2' に変換しました。signed/unsigned が一致しません

たとえば、符号なしの値を符号付きの値に変換しようとしたとします。 このパターンでは、実行時にソース値が変換先の型の範囲内にない場合に、予期しない結果が発生する可能性があります。 負の値が符号付き値に変換される場合などです。

C4365 は、既定で無効になっています。 詳細については、「 Compiler Warnings That Are Off by Default」を参照してください。

次の例では C4365 が生成されます。

// C4365.cpp
// compile with: /W4
#pragma warning(default:4365)

int f(int) { return 0; }
void Test(size_t i) {}

int main() {
   unsigned int n = 10;
   int o = 10;
   n++;
   f(n);   // C4365
   f(o);   // OK

   Test( -19 );   // C4365
}