既定で無効になっているコンパイラ警告

コンパイラの一部の警告は既定でオフになっています。ほとんどのユーザーにはそれらの警告の表示が不要なためです。 ただし、次のいずれかのオプションを使用してこのような警告を有効にできます。

  • #pragma warning(default : warning_number )
    指定された警告 (warning_number) は既定のレベルで有効になっています。 警告に関するドキュメントには、既定のレベルの警告が記載されています。

  • #pragma warning( warning_level : warning_number )
    指定された警告 (warning_number) は指定されたレベル (warning_level) で有効になっています。

  • /Wall
    /Wall は既定では無効のすべての警告を有効にします。

既定では、次の警告はオフになっています。

C4061 (レベル 4)

switch 中の 'identifier' ('enumeration' の) は case ラベルに与えられません。

C4062 (レベル 3)

switch 中の 'identifier' ('enumeration' の) は与えられません。

C4191 (レベル 3)

'operator/operation': 'type of expression' から 'type required' への安全でない変換

C4242 (レベル 4)

'identifier': 'type1' から 'type2' に変換しました。データが失われている可能性があります。

C4254 (レベル 4)

'operator': 'type1' から 'type2' への変換です。データが失われる可能性があります。

C4255 (レベル 4)

'function': 関数プロトタイプがありません: '()' を '(void)' に変換します。

C4263 (レベル 4)

'function': メンバー関数はどの基底クラスの仮想メンバー関数もオーバーライドしません。

C4264 (レベル 1)

'virtual_function': 仮想メンバー関数用に基底クラス 'class' から使用可能なオーバーライドはありません。関数は隠されます。

C4265 (レベル 3)

'class': クラスは仮想関数を含んでいますが、デストラクターは仮想デストラクターではありません。

C4266 (レベル 4)

'function': 仮想メンバー関数用に基底クラス型 'type' から使用可能なオーバーライドはありません。関数は隠されます。

C4287 (レベル 3)

'operator': 符号なしおよび負の定数が一致していません。

C4289 (レベル 4)

非標準の拡張が使用されています : 'var' : for ループで宣言したループ コントロール変数が for ループ スコープの外側で使用されています。

C4296 (レベル 4)

'operator': 式は常に false です。

C4302 (レベル 2)

'conversion': 'type1' から 'type2' へ切り詰めます。

C4311 (レベル 1)

'変数' : ポインターを '型' から '型' へ切り詰めます。

C4312 (レベル 1)

'操作' : 'type1' からより大きいサイズの 'type2' へ変換します。

C4339 (レベル 4)

'type' : 未定義の型の使用が CLR meta-data で検出されました。この型を使用するとランタイム例外が起きる可能性があります。

C4342 (レベル 1)

動作変更: '関数' が呼び出されましたが、メンバー演算子が前のバージョンで呼び出されました

C4350 (レベル 1)

動作変更: 'member1' が 'member2' の代わりに呼び出されました。

C4355

'this' : ベース メンバー初期化リストで使用されました。

C4365 (レベル 4)

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

C4370 (レベル 3)

パッキングの改善のために、前バージョンのコンパイラからクラスのレイアウトが変更されました。

C4371 (レベル 3)

メンバー 'member' のパッキングの改善のために、前バージョンのコンパイラからクラスのレイアウト変更された可能性があります。

C4388 (レベル 4)

signed と unsigned の数値を比較しようとしました。

C4412 (レベル 2)

'function': 関数のシグネチャが型 'type' を含んでいます。C++ オブジェクトを、純粋なコードと混合またはネイティブ コードとの間で渡すことは安全ではありません。

C4431 (レベル 4)

型指定子がありません - int と仮定しました。 メモ: C は、現在 int を既定値としてサポートしていません

C4435 (レベル 4)

'class1': /vd2 下のオブジェクトのレイアウトは仮想ベース 'class2' により変更されます。

C4437 (レベル 4)

仮想ベース 'class1' から 'class2' への dynamic_cast は特定のコンテキストでは失敗する場合があります。

C4444 (レベル 3)

トップ レベルの '__unaligned' がこのコンテキストで実装されていません。

C4471 (レベル 4)

対象範囲外の列挙の事前宣言には基になる型が必要です (int が想定されます)。

C4472 (レベル 1)

'identifier' はネイティブの列挙型です。マネージ列挙型を宣言するには、アクセス指定子 (private/public) を追加します。

C4514 (レベル 4)

'function': 参照されていないインライン関数は削除されました。

C4536 (レベル 4)

'type name': 型名がメタデータの限度である 'limit' 文字を超えています。

C4545 (レベル 1)

コンマ前の式は、引数リストのない関数として評価します。

C4546 (レベル 1)

コンマの前の関数呼び出しに引数一覧がありません。

C4547 (レベル 1)

'operator': コンマの前の演算子は無効です。有効な演算子を指定してください。

C4548 (レベル 1)

コンマ前の式は無効です。有効な式を指定してください。

C4549 (レベル 1)

'operator': コンマの前の演算子は無効です。候補 'operator'?

C4555 (レベル 1)

式の影響はありません; 式の副作用が必要です。

C4557 (レベル 3)

'__assume' は影響 'effect' を含んでいます。

C4571 (レベル 4)

情報: catch(...) の意味が Visual C++ 7.1 から変更されています。構造化例外 (SEH) はキャッチされません。

C4574 (レベル 4)

'identifier' が '0' として定義されています。'#if identifier' を使用しますか?

C4608 (レベル 3)

'symbol1' は既に初期化子リスト 'symbol2' 内の他の共用体メンバーにより初期化されています。

C4619 (レベル 3)

#pragma warning: 警告番号 'number' がありません。

C4623 (レベル 4)

'derived class': 基底クラスの既定コンストラクターにアクセスできないため、既定のコンストラクターは生成できませんでした。

C4625 (レベル 4)

'derived class': 基底クラスのコピー コンストラクターにアクセスできないため、コピー コンストラクターは生成できませんでした。

C4626 (レベル 4)

'derived class': 基底クラスの代入演算子にアクセスできないため、代入演算子は生成できませんでした。

C4628 (レベル 1)

digraphs は -Ze でサポートされていません。 文字のシーケンス 'digraph' は 'char' の代替トークンとして解釈されません。

C4640 (レベル 3)

'instance': ローカル スタティック オブジェクトの構築がスレッド セーフではありません。

C4668 (レベル 4)

'symbol' は、'directives' を '0' に置換するプリプロセッサ マクロとして定義されていません。

C4682 (レベル 4)

'symbol': 方向性のあるパラメーター属性が指定されていません。[in] を既定とします。

C4686 (レベル 3)

'user-defined type': 動作と UDT の戻り値の呼び出し規約に変更がある可能性があります。

C4692 (レベル 1)

'関数': 公開されたメンバーのシグネチャはアセンブリ プライベート ネイティブ型 'native_type' を含んでいます

C4710 (レベル 4)

'function': インライン関数ではありません。

C4738 (レベル 3)

メモリに 32 ビットの浮動結果を格納します。パフォーマンスが低下する可能性があります

C4767 (レベル 4)

セクション名 'symbol' が 8 文字よりも長いため、リンカーによって切り捨てられます。

C4786 (レベル 3)

'symbol': オブジェクト名は 'number' 文字にデバッグ情報で切り詰められました。

C4820 (レベル 4)

'バイト' : 'バイト' バイトのパディングを 'コンスラクト' 'member_name' の後に追加しました。

C4826 (レベル 2)

'type1' から 'type2' への変換は符号拡張されています。 これは、予期しない実行時の動作を発生させる可能性があります。

C4837 (レベル 4)

検出されたトライグラフ: '??%c' は '%c' に置き換えられました。

C4905 (レベル 1)

'LPSTR' にキャストされた幅の広いリテラル文字列

C4906 (レベル 1)

'LPWSTR' にキャストされたリテラル文字列

C4917 (レベル 1)

'declarator': GUID はクラス、インターフェイス、または名前空間にのみ関連付けることができます。

C4928 (レベル 1)

コピー初期化が正しくありません。複数のユーザー定義の変換が暗黙的に適用されています。

C4931 (レベル 4)

number ビット ポインター用にタイプ ライブラリがビルドされていることを想定します。

C4946 (レベル 1)

reinterpret_cast が関連クラスの間で使用されました : 'class1' と 'class2'

C4962

'function': 最適化によってプロファイル データに矛盾が生じたため、ガイド付き最適化のプロファイルを無効にします。

C4986 (レベル 4)

'symbol': 例外の指定が前の宣言と一致しません。

C4987 (レベル 4)

非標準の拡張機能が使用されています: 'throw (...)' です。

C4988 (レベル 4)

'symbol': 変数がクラス/関数のスコープ外で宣言されています。

参照

関連項目

warning