次の方法で共有


Microsoft C/C++ コンパイラ警告 (C4600 から C4799)

このセクションの記事では、Microsoft C/C++ コンパイラの警告メッセージ C4600 から C4799 について説明します。

重要

Visual Studio のコンパイラとビルド ツールからは、さまざまな種類のエラーと警告が報告されます。 エラーや警告の検出後、ビルド ツールではコードの意図が仮定され、処理の続行が試行されるため、さらに多くの問題が同時に報告されることがあります。 ツールによるこの仮定が誤っていると、それ以降のエラーや警告がプロジェクトに適用されない場合があります。 プロジェクト内の問題を解決するときは、必ず、報告された最初のエラーまたは警告から開始し、多くの場合はリビルドしてください。 1 つの修正によって、その後のエラーが多数解消される可能性があります。

Visual Studio の特定の診断メッセージのヘルプを見るには、[出力] ウィンドウで選択し、F1 キーを押します。 Visual Studio によって、そのエラーのドキュメント ページが開きます (存在する場合)。 ページの上部にある検索ツールを使用して、特定のエラーまたは警告に関する記事を検索することもできます。 または、ツール別のエラーと警告の一覧を参照し、このページの目次に入力します。

Note

すべての Visual Studio エラーまたは警告が文書化されているわけではありません。 多くの場合、診断メッセージでは利用可能なすべての情報が提供されます。 F1 を使用してこのページにアクセスし、エラーまたは警告メッセージに追加の説明が必要と思われる場合は、お知らせください。 このページのフィードバック ボタンを使用すると、GitHub でドキュメントに関する問題を提起できます。 エラーまたは警告が間違っていると思われる場合、またはツールセットに別の問題が見つかった場合は、Developer Community サイトで製品の問題を報告してください。 また、フィードバックを送信し、IDE 内でバグを入力することもできます。 Visual Studio でメニュー バーに移動し、[ヘルプ] > [フィードバックの送信] > [問題の報告] を選択するか、[ヘルプ] > [フィードバックの送信] > [提案の送信] を使用して提案を送信します。

Microsoft Learn Q&A フォーラムで、エラーと警告に関する追加のサポートが見つかる場合があります。 または、Visual Studio C++ Developer Community サイトでエラーまたは警告番号を検索します。 Stack Overflow でソリューションを検索することもできます。

その他のヘルプとコミュニティ リソースへのリンクについては、Visual C++ のヘルプとコミュニティに関するページを参照してください。

警告メッセージ

警告 メッセージ
コンパイラ警告 (レベル 1) C4600 #pragma 'macro name': 有効な空でない文字列が必要です
コンパイラ警告 (レベル 1) C4602 #pragma pop_macro: 'macro name' この識別子に対する前の #pragma push_macro がありません
コンパイラの警告 (レベル 1) C4603 'identifier': マクロが定義されていないか、プリコンパイル済みヘッダーが使用している定義とは異なります
コンパイラ警告 (レベル 1) C4604 'type': ネイティブとマネージの境界を越えて値渡しで引数を渡すには、有効なコピー コンストラクターが必要です。 それがない場合、実行時の動作は定義されていません
コンパイラ警告 (レベル 1) C4605 '/Dmacro' は現在のコマンド ラインで指定されていますが、プリコンパイル済みヘッダーの構築時には指定されませんでした
コンパイラ警告 (レベル 1) C4606 #pragma warning: 'warning_number' は無視されました。Code Analysis の警告は警告レベルと関連付けられていません
コンパイラの警告 (レベル 3) C4608 'union_member' は既に初期化子リスト 'union_member' 内の他の共用体メンバーにより初期化されています。
コンパイラ警告 (レベル 3、エラー) C4609 'type1' は、型 'type2' に対する既定のインターフェイス 'interface' から派生します。 'type1' に対して別の既定のインターフェイスを使用するか、基底/派生の関係を解消してください。
コンパイラ警告 (レベル 4) C4610 オブジェクト 'class' を初期化できません。ユーザー定義のコンストラクターが必要です
コンパイラの警告 (レベル 4) C4611 'function' と C++ オブジェクト デストラクション間での相互作用は移植可能ではありません
コンパイラ警告 (レベル 1) C4612 インクルード ファイル名にエラーがあります
コンパイラの警告 (レベル 1) C4613 'symbol': セグメントのクラスは変更できません
コンパイラ警告 (レベル 1) C4615 #pragma warning: 不明なユーザー警告の型です
コンパイラ警告 (レベル 1) C4616 #pragma warning: 警告番号 'number' は有効なコンパイラ警告ではありません
コンパイラ警告 (レベル 1) C4618 pragma のパラメーターに空の文字列があります。pragma は無視されます
コンパイラ警告 (レベル 3) C4619 #pragma warning: 警告番号 'number' がありません
コンパイラ警告 (レベル 1) C4620 型 'type' に対して後置形式の 'operator ++' は見つかりません。前置形式を使用します
コンパイラの警告 (レベル 1) C4621 型 'type' に対して後置形式の 'operator --' は見つかりません。前置形式を使用します
コンパイラ警告 (レベル 3) C4622 オブジェクト ファイル 'file' でデバッグ情報はプリコンパイル済みヘッダーを作成したときに上書きされました
コンパイラ警告 (レベル 4) C4623 'derived class': 基底クラスの既定のコンストラクターがアクセスできないか削除されているため、既定のコンストラクターは暗黙的に削除済みとして定義されました
コンパイラ警告 (レベル 1) C4624 'derived class': 基底クラスのデストラクターへのアクセスまたはその削除ができないため、デストラクターを暗黙的に削除済みとして定義しました
コンパイラの警告 (レベル 4) C4625 'derived class': 基底クラスのコピー コンストラクターがアクセスできないか削除されているため、コピー コンストラクターは暗黙的に削除済みとして定義されました
コンパイラの警告 (レベル 4) C4626 'derived class': 基底クラスの代入演算子がアクセスできないか削除されているため、代入演算子は暗黙的に削除済みとして定義されました
コンパイラ警告 (レベル 1) C4627 '<identifier>': プリコンパイル済みヘッダーの使用を検索中にスキップされました
コンパイラ警告 (レベル 1) C4628 digraphs は -Ze でサポートされていません。 文字のシーケンス 'digraph' は '%s' の代替トークンとして解釈されません
コンパイラ警告 (レベル 4) C4629 digraph が使用されました。文字のシーケンス 'digraph' はトークン 'char' として解釈されます。(これが意図でない場合は、2 文字の間にスペースを挿入してください)
コンパイラ警告 (レベル 1) C4630 'symbol': 'extern' ストレージ クラスの指定子がメンバー定義で誤って指定されています
コンパイラ警告 (レベル 2) C4631 MSXML または XPath は使用できません。XML ドキュメント コメントは処理されません。 reason
コンパイラ警告 (レベル 1) C4632 XML ドキュメント コメント: ファイル - アクセスは拒否されました: 理由
コンパイラの警告 (レベル 3) C4633 XML ドキュメント コメント対象: エラー: 理由
コンパイラ警告 (レベル 4) C4634 XML ドキュメント コメント対象: 適用できません: 理由
コンパイラ警告 (レベル 3) C4635 XML ドキュメント コメント対象: XML の形式が正しくありません: 理由
コンパイラ警告 (レベル 3) C4636 コンストラクトに適用された XML ドキュメント コメント: タグには空でない 'attribute' 属性が必要です。
コンパイラ警告 (レベル 3 およびレベル 4) C4637 XML ドキュメント コメント対象: <include> タグは破棄されました。 理由
コンパイラの警告 (レベル 3) C4638 XML ドキュメント コメント対象: 不明なシンボル 'symbol' への参照。
コンパイラ警告 (レベル 4) C4639 MSXML エラーです。XML ドキュメント コメントは処理されません。 理由
コンパイラ警告 (レベル 3) C4640 'instance': ローカル スタティック オブジェクトの構築がスレッド セーフではありません
コンパイラの警告 (レベル 3) C4641 XML ドキュメント コメントはあいまいな相互参照を含んでいます:
コンパイラ警告 (レベル 1) C4642 'class': ジェネリック パラメーター 'name' の制約をインポートできませんでした
コンパイラ警告 (レベル 4、オフ) C4643 名前空間 std での 'identifier' の事前宣言は C++ 標準では許可されていません。
コンパイラ警告 (レベル 1) C4644 定数式でのマクロベースの offsetof パターンの使用は非標準です。代わりに、C++ 標準ライブラリで定義された offsetof を使用してください
コンパイラの警告 (レベル 3) C4645 __declspec(noreturn) で宣言された関数に return ステートメントがあります。
コンパイラの警告 (レベル 3) C4646 __declspec(noreturn) で宣言された関数に、non-void 戻り値の型があります。
コンパイラ警告 (レベル 3) C4647 動作の変更: __is_pod(type) は、以前のバージョンでは異なる値を持ちます
コンパイラ警告 (レベル 3) C4648 標準属性 'carries_dependency' は無視されます
コンパイラ警告 (レベル 3) C4649 このコンテキストでは属性は無視されます
コンパイラ警告 (レベル 1) C4650 デバッグ情報がプリコンパイル済みヘッダーにありません。ヘッダーからのグローバル シンボルのみ利用できます
コンパイラ警告 (レベル 1) C4651 プリコンパイル済みヘッダーに対して 'definition' が指定されていますが、現在のコンパイルに対しては指定されていません
コンパイラ警告 (レベル 1) C4652 コンパイラ オプション 'option' はプリコンパイル済みヘッダーのものと一致しません。現在のコマンド ライン オプションを、プリコンパイル済みヘッダーで定義されているものよりも優先します
コンパイラ警告 (レベル 2) C4653 コンパイラ オプション 'option' はプリコンパイル済みヘッダーのものと一致しません。現在のコマンド ライン オプションは無視されます
コンパイラ警告 (レベル 4) C4654 プリコンパイル済みヘッダー行のインクルードよりも前にあるコードは無視されます。 プリコンパイル済みヘッダーにコードを追加します。
コンパイラ警告 (レベル 1) C4655 'symbol': 変数の型が前回のビルドから新規に追加されているか、他の個所で異なる定義がなされています
コンパイラ警告 (レベル 1) C4656 'symbol': データ型は前回のビルドから新規に追加、または変更されているか、他の個所で異なる定義がなされています
コンパイラ警告 (レベル 1) C4657 最新のビルドよりも後に新しく追加されたデータ型が数式に関係しています
コンパイラ警告 (レベル 1) C4658 'function': 関数のプロトタイプが前回のビルドから新規に追加されているか、他の個所で異なる定義がなされています
コンパイラ警告 (レベル 1) C4659 #pragma 'pragma': 予約されたセグメント 'segment' の使用の動作が定義されていません。#pragma comment(linker, ...) を使用してください
コンパイラ警告 (レベル 1) C4661 'identifier': 明示的なテンプレートのインスタンス化要求に対して適切な定義がありません
コンパイラ警告 (レベル 1) C4662 明示的なインスタンス化。テンプレート クラス 'identifier1' に 'identifier2' を特定する定義がありません
コンパイラの警告 (レベル 1) C4667 'function': 強制インスタンス化に合致するように定義された関数テンプレートはありません
コンパイラの警告 (レベル 4) C4668 'symbol' は、'directive' を '0' に置換するプリプロセッサ マクロとして定義されていません
コンパイラ警告 (レベル 1) C4669 'cast': 変換が安全ではありません: 'class' はマネージド型のオブジェクトです
コンパイラ警告 (レベル 4) C4670 'identifier': この基底クラスにアクセスできません
コンパイラ警告 (レベル 4) C4671 'identifier': コピー コンストラクターにアクセスできません
コンパイラの警告 (レベル 4) C4672 'identifier1': あいまいです。 1 つ目を 'identifier2' とします。
コンパイラ警告 (レベル 4) C4673 'identifier' のスロー。次の型はキャッチ側では評価されません
コンパイラ警告 (レベル 1) C4674 'method' は宣言された 'static' であり、パラメーターを 1 つだけ持たなければなりません。
コンパイラ警告 (レベル 4) C4676 '%s': デストラクターにアクセスできません
コンパイラ警告 (レベル 1) C4677 'function': 公開されたメンバーのシグネチャはアセンブリ プライベート型 'private_type' を含んでいます
コンパイラの警告 (レベル 1) C4678 基底クラス 'base_type' のアクセス可能性が 'derived_type' よりも小さい
コンパイラ警告 (レベル 1) C4679 'member': メンバーをインポートできませんでした
コンパイラの警告 (レベル 4) C4680 'class': コクラスは既定のインターフェイスを指定していません
コンパイラの警告 (レベル 4) C4681 'class': コクラスは、イベント ソースである既定のインターフェイスを指定していません
コンパイラ警告 (レベル 4) C4682 'parameter': 方向性のあるパラメーター属性が指定されていません。[in] を既定とします
コンパイラ警告 (レベル 1) C4683 'function': イベント ソースに 'out' パラメーターが存在します。複数のイベント ハンドラーをフックするときに注意が必要です
コンパイラ警告 (レベル 1) C4684 'attribute': 警告!! 属性が原因で、無効なコードが生成される可能性があります。注意して使用してください
コンパイラ警告 (レベル 1) C4685 テンプレート パラメーターの解析中に '>>' が必要ですが、'>>' が見つかりました
コンパイラの警告 (レベル 3) C4686 'user-defined type': 動作と UDT の戻り値の呼び出し規則に変更がある可能性があります
コンパイラ警告 (エラー) C4687 'class': シールド抽象クラスはインターフェイス 'interface' を実装できません
コンパイラ警告 (レベル 1) C4688 'constraint': 制約リストはアセンブリ プライベート型 'type' を含んでいます
コンパイラ警告 (レベル 1) C4689 '%c': #pragma detect_mismatch にサポートされていない文字が含まれています。#pragma は無視されました
コンパイラの警告 (レベル 4) C4690 [ emitidl( pop ) ]: ポップがプッシュの回数を上回っています
コンパイラ警告 (レベル 1) C4691 'type': 参照された型は参照されていないアセンブリ 'file' で必要です。現在の翻訳単位で定義された型が代わりに使用されます
コンパイラ警告 (レベル 1) C4692 'function': 公開されたメンバーのシグネチャはアセンブリ プライベート ネイティブ型 'native_type' を含んでいます
コンパイラ警告 (レベル 1、エラー) C4693 'class': シールド抽象クラスにインスタンス メンバー 'instance member' を含めることはできません
コンパイラ警告 (レベル 1、エラー) C4694 'class': シールド抽象クラスには、基底クラス 'base_class' を含めることはできません
コンパイラ警告 (レベル 1) C4695 #pragma execution_character_set: 'character set' はサポートされた引数ではありません: 現在は 'UTF-8' のみがサポートされています
コンパイラ警告 (レベル 1) C4696 /ZBvalue1 オプションが範囲を超えています。想定は 'value2' です
コンパイラ警告 (レベル 3) C4698 'feature' は評価の目的でのみ提供されています。将来の更新で変更または削除されることがあります。
コンパイラの警告 (レベル 1 およびレベル 4) C4700 初期化されていないローカル変数 'name' が使用されています
コンパイラの警告 (レベル 4) C4701 初期化されていない可能性のあるローカル変数 'name' が使用されています
コンパイラ警告 (レベル 4) C4702 到達できないコード
コンパイラの警告 (レベル 4) C4703 初期化されていない可能性のあるローカル ポインター変数 '%s' が使用されています
コンパイラ警告 (レベル 4) C4706 条件式の比較値は、代入の結果になっています
コンパイラ警告 (レベル 4) C4709 コンマ演算子で分割された表現式が、配列のインデックスとして使われています
コンパイラの警告 (レベル 4) C4710 'function': インライン関数ではありません
コンパイラ警告 (レベル 1) C4711 関数 'function' に自動インライン展開を選択しました
コンパイラの警告 (レベル 4) C4714 関数 'function' がインライン関数ではなく、__forceinline としてマークされています
コンパイラ警告 (レベル 1) C4715 'function': 値を返さないコントロール パスがあります
コンパイラ警告 (レベル 1、警告) C4716 'function': 値を返す必要があります
コンパイラの警告 (レベル 1) C4717 'function': すべてのコントロール パスで再帰的です。関数で実行時スタック オーバーフローが発生します
コンパイラ警告 (レベル 4) C4718 'function call': 再帰呼び出しには副作用がありません。削除しています
コンパイラ警告 (レベル 1) C4719 Qfast の指定時に倍精度の定数が見つかりました。単精度を示すためのサフィックスとして 'f' を使用してください
コンパイラ警告 (レベル 2) C4720 インライン アセンブラーからの報告: 'message'
コンパイラ警告 (レベル 1) C4721 'function': 組み込みとして使用できません
コンパイラ警告 (レベル 1) C4722 'function': デストラクターが戻りません。メモリ リークの可能性があります
コンパイラ警告 (レベル 3) C4723 0 による除算の可能性があります
コンパイラ警告 (レベル 3) C4724 剰余の 2 番目のオペランドは、コンパイル時に 0 と評価され、不定の結果を返します。
コンパイラ警告 (レベル 3) C4725 Pentium のモデルによっては、命令が不正確になります。
コンパイラ警告 C4726 ARM arch4/4T では、イミディエイト値を伴う '<cpsr_f> または <spsr_f>' のみがサポートされます
コンパイラ警告 (レベル 1) C4727 pch_file という名前で、タイムスタンプが同じである PCH が obj_file_1 と obj_file_2 に見つかりました。 最初の PCH を使用します。
コンパイラ警告 (レベル 1) C4728 PCH 参照が必要なため、/Yl- オプションは無視されます
コンパイラ警告 (レベル 4) C4729 フロー グラフ ベースの警告の関数が大きすぎます。
コンパイラ警告 (レベル 1) C4730 'main': _m64 と浮動小数点式を混用することで、正しくないコードが発生する可能性があります
コンパイラの警告 (レベル 1) C4731 'pointer': インライン アセンブリ コードによって変更されたフレーム ポインター レジスタ 'register' です
コンパイラ警告 (レベル 1) C4732 組み込み '%s' はこのアーキテクチャでサポートされていません
コンパイラ警告 (レベル 1) C4733 'FS:0' に割り当てるインライン asm: ハンドラーは安全なハンドラーとして登録されていません
コンパイラ警告 C4734 COFF デバッグ情報セクションで 64K 以上の行数があります。モジュール 'module' に対する COFF デバッグ行の生成を中止してください
コンパイラ警告 C4735 align_function 属性引数 'argument' は 2 の累乗ではなく、正ではありません。 属性の無視
コンパイラ警告 C4736 /Gy が指定されなかったため、align_function 属性が無視されました
コンパイラ警告 (レベル 3) C4738 メモリに 32 ビットの浮動結果を格納します。パフォーマンスが低下する可能性があります
コンパイラ警告 (レベル 1) C4739 変数 'var' への参照はそのストレージ領域を超えています
コンパイラ警告 (レベル 4) C4740 インライン asm コードを出入りするフローによりグローバルな最適化が抑制されています
コンパイラ警告 (レベル 1) C4742 'var' のアラインメントが 'file1' と 'file2' で異なります: number と number
コンパイラの警告 (レベル 1) C4743 'type' のサイズが 'file1' と 'file2' で異なります: number バイトと number バイト
コンパイラ警告 (レベル 1) C4744 'var' の型が 'file1' と 'file2' で異なります: 'type1' と 'type2'
コンパイラ警告 C4745 'name' の揮発性アクセスは、そのサイズにより許可することができません
コンパイラ警告 C4746 'expression' の揮発性のアクセスは /volatile:<iso|ms> 設定に従います。__iso_volatile_load/store 組み込み関数の使用を検討してください
コンパイラ警告 (レベル 1) C4747 マネージド 'entrypoint' の呼び出し: マネージド コードは、DLL エントリポイントや、DLL エントリポイントから到達した呼び出しを含むローダー ロック下では実行できません
コンパイラ警告 (レベル 4) C4749 条件付きでサポート: 非標準のレイアウト型 'type' に offsetof が適用されています
コンパイラ警告 (レベル 1) C4750 'identifier': ループにインライン展開されている _alloca() を含む関数です
コンパイラ警告 (レベル 4) C4751 /arch:AVX フラグは、インライン ASM 内の Intel(R) ストリーミング SIMD 拡張命令に対応していません
コンパイラ警告 (レベル 4) C4752 Intel(R) Advanced Vector Extensions が見つかりました。/arch:AVX の使用を検討してください
コンパイラ警告 C4753 ポインターの境界が見つかりません。MPX 組み込み関数は無視されます
コンパイラ警告 (レベル 4) C4754 %s(%d) での比較における算術演算の変換規則により、いずれかの分岐を実行できません。 '%s' を '%s' (または %d バイトの類似の型) にキャストします。
コンパイラ警告 C4755 %s(%d) での比較における算術演算の変換規則により、インライン関数でいずれかの分岐を実行できません。 '%s' を '%s' (または %d バイトの類似の型) にキャストします。
コンパイラ警告 (レベル 2) C4756 定数演算でオーバーフローが発生しました
コンパイラ警告 (レベル 4) C4757 添字は大きな符号なしの値です。負の定数を意図しましたか?
コンパイラ警告 C4761 引数の整数サイズの不一致。指定された変換
コンパイラ警告 (レベル 4) C4764 キャッチ オブジェクトを 16 バイトを超えて整列することはできません
コンパイラ警告 (レベル 4) C4767 セクション名 '%s' が 8 文字を超えているため、リンカーによって切り詰められます
コンパイラ警告 (レベル 3) C4768 リンケージ指定子の前の __declspec 属性は無視されます
コンパイラ警告 (レベル 4) C4770 部分的に検証された列挙型 'name' がインデックスとして使用されています
コンパイラ警告 C4771 境界は単純なポインターを使用して作成する必要があります。MPX 組み込み関数は無視されます
コンパイラ警告 (レベル 1、エラー) C4772 #import は存在しない型ライブラリから型を参照しました。'missing_type' はプレースホルダーとして使用されます
コンパイラ警告 (レベル 4) C4774 'string': 引数 number に必要な書式文字列が文字列リテラルではありません
コンパイラ警告 (レベル 3) C4775 関数 'function' の書式文字列 'string' に非標準の拡張機能が使用されています
コンパイラ警告 (レベル 1) C4776 '%character' は、関数 'function' の書式文字列では許可されていません
コンパイラ警告 (レベル 4) C4777 'function': 書式文字列 'string' は型が 'type1' の引数を必要としますが、variadic 引数 number は型が 'type2' です
コンパイラ警告 (レベル 3) C4778 'function' : 書式文字列 'string' は終端文字がありません
コンパイラ警告 (レベル 1) C4788 'identifier': 識別子は 'number' 文字に切り詰められました
コンパイラ警告 (レベル 1) C4789 バッファー 'identifier' (サイズが N バイト) でオーバーランが発生します。M バイトがオフセット L から書き込まれます
コンパイラ警告 (レベル 2) C4792 sysimport を使用して関数 '%s' が宣言され、ネイティブ コードから参照されました。インポート ライブラリはリンクする必要があります
コンパイラの警告 (レベル 1 および 3) C4793 'function': 関数はネイティブとしてコンパイルされました: 'reason'
コンパイラの警告 (レベル 1) C4794 スレッド ローカル ストレージ変数 '%s' のセグメントが '%s' から '%s' に変更されました
コンパイラ警告 C4798 例外ハンドラー、または展開処理の意味を持つ p-code 関数 'name' に対してネイティブ コードが生成されました
コンパイラ警告 (レベル 1) C4799 関数 'function' には EMMS 命令がありません

関連項目

C/C++ コンパイラおよびビルド ツールのエラーと警告
コンパイラ警告 (C4000 - C5999)