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 命令がありません |