コンパイラ エラー (C2500 - C2599)
ドキュメントのこのセクションのアーティクルでは、コンパイラによって生成されるエラー メッセージの一部について説明します。
重要
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++ のヘルプとコミュニティに関するページを参照してください。
エラー メッセージ
エラー | メッセージ |
---|---|
コンパイラ エラー C2500 | 'identifier1': 'identifier2' は既に直接の基底クラスです |
コンパイラ エラー C2501 | 'identifier': '__declspec(specifier)' は、構造体、共用体、クラス、または符号なしビット フィールド メンバーにのみ適用できます |
コンパイラ エラー C2502 | 'identifier': 基底クラスでアクセス修飾子が多すぎます |
コンパイラ エラー C2503 | 'class': 基底クラスにサイズが 0 の配列があります |
コンパイラ エラー C2504 | 'class': 定義されていない基底クラスが宣言されています |
コンパイラ エラー C2505 | 'symbol': '__declspec(specifier)' は、グローバル オブジェクトの宣言または定義、および静的データ メンバーにのみ適用できます |
コンパイラ エラー C2506 | 'member': '__declspec(specifier)' はこのシンボルに適用できません |
コンパイラ エラー C2507 | 'identifier': 基底クラスで virtual 修飾子が多すぎます |
コンパイラ エラー C2508 | 'identifier': '__declspec(specifier1)' を '__declspec(specifier2)' と組み合わせることはできません |
コンパイラ エラー C2509 | 'identifier': メンバー関数が 'class' で宣言されていません |
コンパイラ エラー C2510 | 'identifier': '::' の左側は、クラス、構造体、共用体のいずれかでなければなりません |
コンパイラ エラー C2511 | 'identifier': オーバーロードされたメンバー関数が 'class' にありません |
コンパイラ エラー C2512 | 'identifier': クラス、構造体、共用体に既定のコンストラクターがありません |
コンパイラ エラー C2513 | '*type': '=' の前に変数が宣言されていません |
コンパイラ エラー C2514 | 'class': クラスにコンストラクターがありません |
コンパイラ エラー C2515 | 'identifier': 'vtguard' は、クラス宣言または定義にのみ適用できます |
コンパイラ エラー C2516 | 'class': 正しい基底クラスではありません |
コンパイラ エラー C2517 | 'identifier': '::' の右側が定義されていません |
コンパイラ エラー C2518 | キーワード 'keyword' は基底クラス リストでは無効です。無視されます |
コンパイラ エラー C2519 | 'identifier': WinRT 属性にはパブリック フィールドだけを含めることができます |
コンパイラ エラー C2520 | 'class': 暗黙的な変換に使用できる非明示的なコンストラクターがありません |
コンパイラ エラー C2521 | デストラクターまたはファイナライザーは引数を受け取りません |
コンパイラ エラー C2522 | 'identifier': オーバーロード識別子は既に 'identifier2' で指定されているため、'identifier1' で使用することはできません |
コンパイラ エラー C2523 | 'class::~identifier': デストラクターまたはファイナライザーのタグが一致しません |
コンパイラ エラー C2524 | 'identifier': デストラクターまたはファイナライザーは 'void' パラメーター リストを必要とします |
コンパイラ エラー C2525 | 'identifier': パラメーター 'identifier1' は基本関数で 'identifier2' という名前が指定されています。公開済みの実装と一致させる必要があります |
コンパイラ エラー C2526 | 'identifier1': C リンケージ関数は、C++ クラス 'identifier2' を返すことはできません |
コンパイラ エラー C2527 | 'identifier': DefaultOverload を 'function1' と 'function2' の両方で指定することはできません。 実装時に、1 つの指定を削除するか関数の名前を変更してください |
コンパイラ エラー C2528 | 'identifier': 参照へのポインターは無効です |
コンパイラ エラー C2529 | 'identifier': 参照への参照は無効です |
コンパイラ エラー C2530 | 'identifier': 参照が初期化されずに宣言されています |
コンパイラ エラー C2531 | 'identifier': ビット フィールドへの参照はできません |
コンパイラ エラー C2532 | 'identifier': 参照の修飾子が正しくありません |
コンパイラ エラー C2533 | 'identifier': コンストラクターの宣言に戻り値の型が含まれています |
コンパイラ エラー C2534 | 'identifier': コンストラクターは値を返せません |
コンパイラ エラー C2535 | 'identifier': メンバー関数は、既に定義または宣言されています |
コンパイラ エラー C2536 | 廃止。 |
コンパイラ エラー C2537 | 'specifier': リンケージ指定が不正です |
コンパイラ エラー C2538 | 廃止。 |
コンパイラ エラー C2539 | 廃止。 |
コンパイラ エラー C2540 | 配列のバウンドが定数式ではありません |
コンパイラ エラー C2541 | 'identifier': ポインターではないオブジェクトを削除することはできません |
コンパイラ エラー C2542 | 'identifier': クラス オブジェクトに初期化するためのコンストラクターがありません |
コンパイラ エラー C2543 | 添字演算子の右角かっこ ']' がありません |
コンパイラ エラー C2544 | 演算子 '()' には ')' が必要です |
コンパイラ エラー C2545 | 'operator': 演算子は、与えられたオペランドには使うことができません |
コンパイラ エラー C2546 | 'identifier': PIA と no-PIA の両方で型が定義されている場合は、PIA を最初に参照する必要があります |
コンパイラ エラー C2547 | 'identifier': 公開されるメソッドのすべてのパラメーターは宣言に明確に指定する必要があります |
コンパイラ エラー C2548 | 'function': パラメーター parameter に既定のパラメーターがありません |
コンパイラ エラー C2549 | ユーザー定義の変換では、戻り値の型を指定できません |
コンパイラ エラー C2550 | 'identifier': コンストラクターの初期化子リストはコンストラクターの定義だけに許されます |
コンパイラ エラー C2551 | 'void *' 型には明示的なキャストが必要です |
コンパイラ エラー C2552 | 'identifier': 初期化子リストによる個別の識別子の初期化に誤りがあります |
コンパイラ エラー C2553 | 'type derived_class::function': オーバーライドする仮想関数の戻り値の型は 'typebase_class::function' と異なります |
コンパイラ エラー C2555 | 'derived_class::function': オーバーライドする仮想関数の戻り値の型が異なり、'base_class::function' の covariant ではありません |
コンパイラ エラー C2556 | 'type1 class::function': オーバーロード関数は、'type2class::function' と戻り値の型のみが異なります |
コンパイラ エラー C2557 | 'identifier': プライベート メンバー、プロテクト メンバーの初期化にはコンストラクターが必要です |
コンパイラ エラー C2558 | クラス 'class': コピー コンストラクターが使用できないか、'explicit' として宣言されています |
コンパイラ エラー C2559 | 'identifier': ref 修飾子なしのメンバー関数を ref 修飾子ありのメンバー関数でオーバーロードすることはできません |
コンパイラ エラー C2560 | 'identifier': ref 修飾子ありのメンバー関数を ref 修飾子なしのメンバー関数でオーバーロードすることはできません |
コンパイラ エラー C2561 | 'function': 関数は値を返す必要があります |
コンパイラ エラー C2562 | 'function': 戻り値の型が 'void' で宣言された関数が、値を返しました |
コンパイラ エラー C2563 | 仮パラメーター リストまたは関数へのポインターが、適合していません |
コンパイラ エラー C2564 | 廃止。 |
コンパイラ エラー C2565 | 'identifier': ref 修飾子をコンストラクター/デストラクターに使用することはできません |
コンパイラ エラー C2566 | 条件式中のオーバーロード関数を評価することができません |
コンパイラ エラー C2567 | 'filename' 内のメタデータを開くことができません。possible_reason |
コンパイラ エラー C2568 | 'identifier': オーバーロード関数のうち、どれを呼び出すのか決定できません |
コンパイラ エラー C2569 | 'identifier': 列挙および共用体は基底クラスとして使用できません |
コンパイラ エラー C2570 | 'identifier': 共用体は基底クラスを含むことはできません |
コンパイラ エラー C2571 | 'identifier': 仮想関数を共用体 'union' 内に含めることはできません |
コンパイラ エラー C2572 | 'function': 既定引数の再定義: パラメーター number |
コンパイラ エラー C2573 | 'class': この型のオブジェクトへのポインターを削除することはできません。クラスに 'operator delete' の非置換オーバーロードがありません。 ::delete を使用するか、'operator delete(void*)' をクラスに追加してください |
コンパイラ エラー C2574 | 'destructor': static として宣言することはできません |
コンパイラ エラー C2575 | 'identifier': 仮想キーワードを使えるのは、クラスや構造体のメンバーだけです |
コンパイラ エラー C2576 | 'identifier': 新しい仮想メソッドを 'public' として導入することはできません。 メソッドを非仮想にするか、アクセシビリティを 'internal' または 'protected private' に変更することを検討してください |
コンパイラ エラー C2577 | 'identifier': デストラクターまたはファイナライザーに戻り値の型を指定することはできません |
コンパイラ エラー C2578 | 'class': 型には、'protected' または 'protected public' コンストラクターは設定できません |
コンパイラ エラー C2579 | 型 type (offset) を解決できません。 filename 内にある必要があります |
コンパイラ エラー C2580 | 'identifier': 既定値にされた特殊なメンバー関数の複数のバージョンは使用できません |
コンパイラ エラー C2581 | 'type': 代入演算子 'operator =' が 'static' で宣言されています |
コンパイラ エラー C2582 | 'operator operator' 関数を 'type' で使用できません |
コンパイラ エラー C2583 | 'identifier': 'const/volatile' 'this' ポインターがコンストラクターまたはデストラクターに対して不適切です |
コンパイラ エラー C2584 | 'class': 直接基底 'base_class2' はアクセスできません。既に 'base_class1' の基底です |
コンパイラ エラー C2585 | 'type' への明示的な変換があいまいです |
コンパイラ エラー C2586 | ユーザー定義の変換構文が正しくありません: 無効な間接参照 |
コンパイラ エラー C2587 | 'identifier': ローカル変数が、誤って既定のパラメーターに用いられています |
コンパイラ エラー C2588 | '::~identifier': 無効なグローバル デストラクター/ファイナライザー |
コンパイラ エラー C2589 | 'identifier': スコープ解決演算子 (::) の右側にあるトークンは使えません |
コンパイラ エラー C2590 | 'identifier': ベース/メンバー初期化子リストを持つことができるのはコンストラクターだけです |
コンパイラ エラー C2591 | ExclusiveTo では 'type' を引数として使用できません。 'ref class' のみが有効な引数です |
コンパイラ エラー C2592 | 'class': 'base_class2' は 'base_class1' から継承され、再指定はできません |
コンパイラ エラー C2593 | 'operator identifier' があいまいです |
コンパイラ エラー C2594 | 'operator': 'type1' から 'type2' への変換はあいまいです |
コンパイラ エラー C2595 | 'identifier': WinRT 属性型は sealed である必要があります |
コンパイラ エラー C2596 | 'identifier': WinRT 属性フィールドには、'public enum class'、'int'、'unsigned int'、'bool'、'Platform::Type'、'Platform::String'、または 'Windows::Foundation::HResult' のみを指定できます |
コンパイラ エラー C2597 | 静的でないメンバー 'identifier' への参照が正しくありません |
コンパイラ エラー C2598 | リンケージ指定子がグローバル スコープで宣言されていません |
コンパイラ エラー C2599 | 'identifier': マネージド/WinRT 列挙型の事前宣言は使用できません |
関連項目
C/C++ コンパイラおよびビルド ツールのエラーと警告
コンパイラ エラー C2000 - C3999、C7000 - C7999