Microsoft C/C++ コンパイラの警告 C4800 - C4999
このセクションの記事では、Microsoft C/C++ コンパイラの警告メッセージ C4800 から C4999 について説明します。
重要
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++ のヘルプとコミュニティに関するページを参照してください。
警告メッセージ
警告 | メッセージ |
---|---|
コンパイラの警告 (レベル 4、オフ) C4800 | 'type' から bool への暗黙の型変換です。 情報が損失している可能性があります |
コンパイラの警告 C4801 | 参照渡しは検証可能ではありません: message |
コンパイラの警告 (レベル 1) C4803 | 'method': raise メソッドはイベントのストレージ クラスとは異なるストレージ クラスを持っています。'event' |
コンパイラの警告 (レベル 1) C4804 | 'operation': 演算中の 'bool ' 型の使用方法が安全ではありません |
コンパイラの警告 (レベル 1) C4805 | 'operation': 演算中の 'type1' 型と 'type2' 型の混用は安全ではありません |
コンパイラの警告 (レベル 1) C4806 | 'operation': 安全でない演算: 'type1' 型から 'type2' 型への上位変換を行うと与えられた定数に等しくなりません |
コンパイラの警告 (レベル 1) C4807 | 'operation': 'type1' 型と符号付きビット フィールド型 'type2' の混用は安全ではありません |
コンパイラの警告 (レベル 1) C4808 | case 'value' は 'bool ' 型の switch ラベルには不適切です |
コンパイラの警告 (レベル 1) C4809 | switch 文に冗長な 'default ' ラベルが存在します。可能な 'case ' 条件はすべて記述されています |
コンパイラの警告 (レベル 1) C4810 | pragma pack(show) の値 == n |
コンパイラの警告 (レベル 1) C4811 | pragma conform(forScope, show) の値 == value |
コンパイラの警告 (レベル 1) C4812 | 旧形式の宣言スタイル: 'new_syntax' を使用してください |
コンパイラの警告 (レベル 1) C4813 | 'function': ローカル クラスの friend 関数が宣言されていません |
コンパイラの警告 (レベル 4) C4815 | 'object name': スタック オブジェクトにある、サイズが 0 の配列には要素がありません (オブジェクトが、集約初期化された集約である場合を除く) |
コンパイラの警告 (レベル 4) C4816 | 'param': パラメーターにはサイズが 0 の配列があります。切り捨てられます。(オブジェクトが参照によって渡される場合を除く) |
コンパイラの警告 (レベル 1) C4817 | 'member': このメンバーにアクセスするのに '.' が不適切に使用されています。コンパイラは '->' に置き換えられます |
コンパイラの警告 (レベル 1) C4819 | ファイルは、現在のコード ページ (number) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください |
コンパイラの警告 (レベル 4、オフ) C4820 | 'bytes' バイトのパディングをコンスラクト 'member_name' の後に追加しました |
コンパイラの警告 (レベル 1) C4821 | Unicode エンコードの種類を指定できません。シグネチャ (BOM) つきファイルを保存してください |
コンパイラの警告 (レベル 1、オフ) C4822 | 'member function': ローカル クラスのメンバー関数は本体がありません |
コンパイラの警告 (レベル 3) C4823 | 'function': ピンされたポインターを使用していますが、アンワインド セマンティクスは有効にはなりません。 /EHa を使用してください |
コンパイラの警告 (レベル 2、オフ) C4826 | 'type1' から 'type2' への変換は符号拡張されています。 これは、予期しない実行時の動作を発生させる可能性があります。 |
コンパイラの警告 (レベル 3) C4827 | パラメーターが指定されていない 'ToString ' パブリック メソッドは、virtual および override に設定する必要があります |
コンパイラの警告 (レベル 1) C4828 | オフセット 0xHexOffset から始まる、現在のソースの文字セット (コードページ codepage) では使用できない文字がファイルに含まれています。 |
コンパイラの警告 (レベル 1) C4829 | 関数 main への正しくないパラメーターである可能性があります。 'int main(Platform::Array<Platform::String^>^ argv) ' を使用してください |
コンパイラ警告 (レベル 1) C4834 | 'nodiscard' 属性を持つ関数の戻り値を破棄しています |
コンパイラの警告 (レベル 1) C4835 | 'variable': マネージ コードがホスト アセンブリでまず最初に実行されるまで、エクスポートされたデータの初期化子は実行されません |
コンパイラの警告 (レベル 4、オフ) C4837 | 検出されたトライグラフ '?? character' は 'character' に置き換えられました |
コンパイラの警告 (レベル 1) C4838 | 'type_1' から 'type_2' への変換には縮小変換が必要です |
コンパイラの警告 (レベル 3) C4839 | 可変個引数関数の引数としての、クラス 'type' の標準でない使用法 |
コンパイラの警告 (レベル 4) C4840 | 可変個引数関数の引数としての、クラス 'type'の移植性のない使用法 |
コンパイラの警告 (レベル 4、オフ) C4841 | 非標準の拡張機能が使用されています: 複合メンバー指定子が offsetof で使用されています |
コンパイラの警告 (レベル 4、オフ) C4842 | 多重継承を使用する型に対する 'offsetof ' の適用結果は、コンパイラ リリース間において一貫性が保証されません |
コンパイラの警告 (レベル 4) C4843 | 'type1: 配列または関数の型に対する参照の例外ハンドラーに到達できません。代わりに 'type2' を使用してください |
コンパイラの警告 (レベル 1) C4844 | 'export module module_name ; ' は、現在モジュール インターフェイスを宣言するために優先的に使用される構文です |
コンパイラの警告 (レベル 4) C4845 | '/d1initall[0|1|2|3] ' がコマンド ラインで指定されていない場合、'__declspec(no_init_all) ' は無視されます |
コンパイラの警告 (レベル 4) C4846 | 'value' は '/d1initall ' の有効な引数ではありません: コマンド ライン フラグが無視されました |
コンパイラの警告 (レベル 4) C4847 | '__declspec(no_init_all) ' は、関数、クラス型、またはローカル変数にのみ適用できます: 無視されました |
コンパイラの警告 (レベル 1) C4848 | C++17 以前の標準属性 'no_unique_address ' のサポートはベンダー拡張機能です |
コンパイラの警告 (レベル 1) C4849 | 'directive' ディレクティブで OpenMP 'clause' 句が無視されました |
コンパイラの警告 (レベル 1、エラー) C4854 | 参照に対して非参照の Null ポインターをバインドした場合の動作が定義されていません |
コンパイラの警告 (レベル 1、オフ) C4855 | 'version' では '[=] ' による 'this ' の暗黙的なキャプチャは非推奨です |
コンパイラの警告 (レベル 4) C4856 | 'value' は、'/d1initAll:FillPattern ' の有効な引数ではありません (値は 0 から 255 までの数値でなければなりません)。 コマンドライン フラグが無視されました |
コンパイラの警告 (レベル 1) C4857 | C++/CLI モードは C++17 より新しい C++ のバージョンをサポートしていません。言語を /std:c++17 に設定しています |
コンパイラの警告 (レベル 1) C4858 | 戻り値 function name を破棄しています |
コンパイラの警告 (レベル 4) C4859 | 'value' は、'/presetWarn ' の有効な引数ではありません。値は 0 より大きい 10 進数値でなければなりません。 コマンドライン フラグが無視されました |
コンパイラの警告 (レベル 4) C4860 | 'object name': コンパイラで 'number' バイトのストレージがゼロ初期化されました |
コンパイラの警告 (レベル 4) C4861 | コンパイラで 'number' バイトのストレージがゼロ初期化されました |
コンパイラの警告 (レベル 4) C4866 | コンパイラでは、operator_name の呼び出しの評価順序を左から右方向に設定できない場合があります |
コンパイラの警告 (レベル 1、エラー) C4867 | 'function': 関数呼び出しには引数リストがありません。メンバーへのポインターを作成するために 'call' を使用してください |
コンパイラの警告 (レベル 4) C4868 | 'file(line_number)' コンパイラでは、中かっこで囲まれた初期化子リストの評価順序を左から右方向に設定できない場合があります |
コンパイラの警告 (レベル 3) C4869 | 'nodiscard ' を適用できるのはクラス、列挙型、関数に対してのみです |
コンパイラの警告 (レベル 2) C4872 | concurrency::parallel_for_each の呼び出し先をコンパイルするときに 0 による浮動小数点除算が検出されました (concurrency::parallel_for_each の位置: 'location') |
コンパイラの警告 (レベル 1) C4880 | 'const type_1' から 'type_2' へのキャスト: ポインターまたは参照からキャストして const 性を除去すると、amp 制限関数で未定義の動作が発生する可能性があります |
コンパイラの警告 (レベル 4) C4881 | コンストラクターおよびデストラクターは、tile_static 変数 'variable-name' のために呼び出されません |
コンパイラの警告 (レベル 1) C4882 | 非 const 呼び出し演算子を使用した関数を concurrency::parallel_for_each に渡す処理は推奨されません |
コンパイラの警告 C4883 | 'function name': 関数のサイズでは最適化が省略されます |
コンパイラの警告 C4900 | 'tool1' バージョン 'version1' と 'tool2' バージョン 'version2' の間の中間言語が一致しません |
コンパイラの警告 (レベル 1、オフ) C4905 | 'LPSTR ' にキャストされた幅の広いリテラル文字列 |
コンパイラの警告 (レベル 1、オフ) C4906 | 'LPWSTR ' にキャストされたリテラル文字列 |
コンパイラの警告 (エラー) C4907 | 複数の呼び出し規則は指定できません。最後に指定されたものが使用されます |
コンパイラの警告 (レベル 1) C4910 | '<identifier>': 明示的なインスタンス化では '__declspec(dllexport)' と 'extern' は互換性がありません |
コンパイラの警告 (レベル 1) C4912 | 'attribute': 属性は入れ子の UDT 上での動作が定義されていません |
コンパイラの警告 (レベル 4) C4913 | ユーザー定義のバイナリ演算子 ', ' は存在しますが、すべてのオペランドに適用できるオーバーロードは見つかりませんでした。既定のビルドイン バイナリ演算子 ', ' を使用します |
コンパイラの警告 (レベル 1) C4916 | dispid を指定するためには、'description' はインターフェイスによって導入されなければなりません |
コンパイラの警告 (レベル 1、オフ) C4917 | 'declarator': GUID はクラス、インターフェイス、または名前空間のみに関連付けることができます |
コンパイラの警告 (レベル 4) C4918 | 'character': 無効な文字がプラグマ最適化リスト内にあります |
コンパイラの警告 (レベル 1) C4920 | enum enum-name メンバー member_1=value_1 は、既に enum enum-name 内に member_2=value_2 として見つかりました |
コンパイラの警告 (レベル 3) C4921 | 'description': 属性の値 'attribute' を複製指定しないでください |
コンパイラの警告 (レベル 1) C4925 | method': dispinterface メソッドはスクリプトから呼び出すことはできません |
コンパイラの警告 (レベル 1) C4926 | identifier': シンボルは既に定義されています。属性は無視されます |
コンパイラの警告 (レベル 1) C4927 | 変換が正しくありません。複数のユーザー定義の変換が暗黙的に適用されています |
コンパイラの警告 (レベル 1、オフ) C4928 | コピー初期化が正しくありません。複数のユーザー定義の変換が暗黙的に適用されています。 |
コンパイラの警告 (レベル 1) C4929 | 'file': タイプライブラリは共用体を含みます。'embedded_idl' 修飾子を無視します |
コンパイラの警告 (レベル 1) C4930 | 'prototype': プロトタイプされている関数が呼び出されませんでした (変数の定義が意図されていますか?) |
コンパイラの警告 (レベル 4、オフ) C4931 | number ビット ポインター用にタイプ ライブラリがビルドされていることを想定します |
コンパイラの警告 (レベル 4) C4932 | __identifier( identifier) と __identifier( identifier) を区別できません |
コンパイラの警告 (レベル 1) C4934 | '__delegate(multicast) ' の使用は現在推奨されていません。'__delegate ' を使用してください |
コンパイラの警告 (レベル 1) C4935 | アセンブリ アクセス指定子が 'access' から変更されました |
コンパイラの警告 (レベル 1、エラー) C4936 | この __declspec は、/clr または /clr:pure でコンパイルされるときのみサポートされます |
コンパイラの警告 (レベル 4) C4937 | 'text1' と 'text2' を、'directive' への引数として区別できません |
コンパイラの警告 (レベル 4) C4938 | 'var': 浮動小数点の減少変数は、/fp:strict または #pragma fenv_access で矛盾する結果を生じさせる可能性があります |
コンパイラの警告 C4939 | #pragma vtordisp は非推奨とされます。今後の Visual C++ バージョンからは削除されます |
コンパイラの警告 (レベル 1) C4944 | 'symbol': 'assembly1' からシンボルをインポートできません: 'symbol' は既に現在のスコープに存在します |
コンパイラの警告 (レベル 1) C4945 | symbol': 'assembly1' からシンボルをインポートできません: 'symbol' は既に別のアセンブリ 'assembly2' からインポートされています |
コンパイラの警告 (レベル 1、オフ) C4946 | reinterpret_cast が関連クラスの間で使用されました: 'class1' と 'class2' |
コンパイラの警告 (レベル 1) C4947 | 'type_or_member': 古い形式に設定されています |
コンパイラの警告 (レベル 2) C4948 | 'accessor' の戻り値の型が対応する setter の最後のパラメーターに一致しません |
コンパイラの警告 (レベル 1 およびレベル 4) C4949 | 'managed ' および 'unmanaged ' のプラグマは、'/clr[:option] ' でコンパイルされるときにのみ有効です |
コンパイラの警告 (レベル 1、エラー) C4950 | 'type_or_member': 古い形式に設定されています |
コンパイラの警告 (レベル 1) C4951 | プロファイル データが収集されてから 'function' が編集されました、関数のプロファイル データは使用されません |
コンパイラの警告 (レベル 1) C4952 | 'function': プログラム データベース 'pgd-file' にプロファイル データが見つかりません |
コンパイラの警告 (レベル 1) C4953 | プロファイル データが収集されてから、インライン 'function' が編集されました。プロファイル データは使用されません |
コンパイラの警告 C4954 | 'function': プロファイルされません (__int64 スイッチ式を含んでいます) |
コンパイラの警告 C4955 | 'import2': インポートは無視されます。'import1' から既にインポートされています |
コンパイラの警告 (レベル 1、エラー) C4956 | 'type': この型は検証可能ではありません |
コンパイラの警告 (レベル 1、エラー) C4957 | 'cast': 'cast_from' から 'cast_to' への明示的なキャストは検証可能ではありません |
コンパイラの警告 (レベル 1、エラー) C4958 | 'operation': ポインター演算は検証可能ではありません |
コンパイラの警告 (レベル 1、エラー) C4959 | アンマネージ型 'type' は、そのメンバーへのアクセスによって検証不可能なコードを生成するため、/clr:safe で定義できません |
コンパイラの警告 (レベル 4) C4960 | 'function' はプロファイルするには大きすぎます |
コンパイラの警告 (レベル 1) C4961 | プロファイル データが 'pgd-file' にマージされませんでした。ガイド付き最適化のプロファイルを無効にします |
コンパイラの警告 (レベル 4、オフ) C4962 | 'function': 最適化によってプロファイル データに矛盾が生じたため、ガイド付き最適化のプロファイルを無効にします |
コンパイラの警告 (レベル 1) C4963 | 'description': プロファイル データが見つかりません。別のコンパイラ オプションがインストルメント化されたビルドで使用されました |
コンパイラの警告 (レベル 1) C4964 | 最適化のオプションが指定されませんでした。プロファイル情報は収集されません |
コンパイラの警告 (レベル 1) C4965 | 整数 0 の暗黙的なボックスです。nullptr または明示的なキャストを使用してください |
コンパイラの警告 (レベル 1) C4966 | 'function' には、サポートされていないセグメント名を含む __code_seg 注釈があります。注釈は無視されます |
コンパイラの警告 C4970 | delegate コンストラクター: 'type' がスタティックであるため、ターゲット オブジェクトは無視されます |
コンパイラの警告 (レベル 1) C4971 | 引数の順序: delegate コンストラクターに対して、<ターゲット オブジェクト>、<ターゲット関数> の順序は使用できません。<ターゲット関数>、<ターゲット オブジェクト=""> の順序を使用してください |
コンパイラの警告 (レベル 1、エラー) C4972 | アンボックス操作の結果を左辺の値として扱う、または直接変更することは検証可能ではありません |
コンパイラの警告 (レベル 1) C4973 | 'symbol': 非推奨として設定されています |
コンパイラの警告 (レベル 1) C4974 | 'symbol': 非推奨として設定されています |
コンパイラの警告 (レベル 1) C4975 | modopt '[modifier]' は仮パラメーター 'parameter' に対して無視されました |
コンパイラの警告 (レベル 1) C4976 | 数値 'value' は '/W ' に対して正しくありません。既定の '1' を使用します。 |
コンパイラの警告 (レベル 3) C4981 | Warbird: 関数 'function' は例外のセマンティクスを含んでいるため、インライン関数ではなく、__forceinline として記述されています |
コンパイラの警告 (レベル 3) C4983 | '/analyze:sarif:hashname' は無視されます。'/analyze:log' の引数はディレクトリではなく単一のファイルです |
コンパイラの警告 C4984 | 'if constexpr ' は C++17 の言語拡張です |
コンパイラの警告 (レベル 4) C4985 | 'symbol_name': 前の宣言に属性が存在しません。 |
コンパイラの警告 (レベル 4、オフ) C4986 | 'declaration': 例外指定が以前の宣言と一致しません |
コンパイラの警告 (レベル 4、オフ) C4987 | 非標準の拡張機能が使用されています: 'throw (...) ' |
コンパイラの警告 (レベル 4、オフ) C4988 | 'variable': 変数がクラス/関数スコープの外部で宣言されています |
コンパイラの警告 (レベル 4) C4989 | 'type': 型に競合する定義があります。 |
コンパイラの警告 (レベル 3) C4990 | Warbird: message |
コンパイラの警告 (レベル 3) C4991 | Warbird: インラインの保護レベルが親よりも高いため、関数 'function' はインライン関数ではなく、__forceinline として記述されています |
コンパイラの警告 (レベル 3) C4992 | Warbird: 関数 'function-name' は保護できないインライン アセンブリを含んでいるため、インライン関数ではなく、__forceinline として記述されています |
コンパイラの警告 (レベル 3) C4995 | 'function': 名前が避けられた #pragma として記述されています |
コンパイラの警告 (レベル 3) C4996 | 'deprecated-declaration': deprecation-message (または "deprecated と宣言されました") |
コンパイラの警告 (レベル 1) C4997 | 'class': コクラスは COM インターフェイスまたは擬似インターフェイスを実装しません |
コンパイラの警告 (レベル 1) C4998 | 予測は失敗しました: expectation(value) |