次の方法で共有


[問題の詳細] ウィンドウ

[問題の詳細] ウィンドウには、C/C++ の MSVC コンパイラまたはコード分析によって発行された構造化された診断が表示されます。

[ エラー一覧 ] ウィンドウ の [ 詳細 ] 列にアイコンを表示するエントリを選択して、[ 問題の詳細] ウィンドウを開きます。 [ 問題の詳細] ウィンドウには、選択したエントリの構造化された診断が表示されます。

詳細列にアイコンが含まれる 1 つのエントリを含む Visual Studio エラー一覧のスクリーンショット。

Visual Studio のエラー一覧のスクリーンショット。 1 行のテーブルが表示されます。 行はコンパイラ エラーを表し、エラー コード C2665、説明 "pet: no overloaded function could convert all the argument types"、および Details という名前の列に角が拡大された四角形のアイコンが含まれています。 このアイコンが強調表示されています。

次の 2 つのシナリオで診断が生成されます。

  • MSBuild と MSVC コンパイラを使用した C++ コンパイルでは、構造化された診断が生成される場合があります。
  • キー イベント データをサポートするコード分析の警告は、構造化された診断を出力します。

次のいずれかの操作を行って 、[問題の詳細] ウィンドウを開きます。

  • エントリが強調表示されている間に、エントリをダブルクリックするか、 Enter キーを押します。 Tools>Options>Text Editor>C/C++>Advanced>Show Problem Details on Double Click でこの動作を無効にします。
  • [詳細] 列のアイコンを選択します。
  • エントリのショートカット メニューを開き、[問題の 詳細を開く ] オプションを選択します。

既定では、[エラー一覧] ウィンドウと同じ場所に [問題の詳細] ウィンドウが開きます。 目的の位置に移動して、[ 問題の詳細 ] ウィンドウが開く場所を変更します。

[ 問題の詳細] ウィンドウには、入れ子になっている可能性がある構造化された情報が表示されます。 ウィンドウが開くと、入れ子になった子を持つすべてのエントリが折りたたまれます。

すべての子が折りたたまれている Visual Studio の [問題の詳細] ウィンドウのスクリーンショット。

Visual Studio の [問題の詳細] ウィンドウのスクリーンショット。 以前のエラー 一覧エントリと同じエラー コードと説明を示すヘッダーがあります。 テキストcppcon-diag.cpp (23 行目) を含む選択可能なリンクもあります。 このヘッダーの下には、潜在的なオーバーロードが void pet(cat)、void pet(dog)、void pet(_T0) であることを説明するエントリがあります。 最後のエントリは、"引数リストと一致しようとしています (トカゲ) " と表示されます。 各行の右側には、各エントリのファイルと行番号を示す灰色のテキストがあります。 これらはすべてcppcon-diag.cppに属し、行番号はそれぞれ 7、6、18、23 です。 最初の 3 つのエントリの左側には、これらのエントリを展開できますが、現在は展開できないことを示す、右を指す小さな空の矢印があります。

エントリの左側にある矢印を選択するか、エントリが強調表示された状態で キーを押して、エントリを展開して子を表示します。

一部の子が展開された Visual Studio の [問題の詳細] ウィンドウのスクリーンショット。

Visual Studio の [問題の詳細] ウィンドウのスクリーンショット。 内容はほとんど前のスクリーンショットと同じですが、一部のエントリは展開され、子エントリが表示されます。 最初のエントリが展開されます。 "void pet(cat) cannot convert argument 1 from lizard to cat" というテキストの入れ子になったエントリがあります。 このエントリはインデントされ、展開できます。 前の 2 行目が拡張され、"void pet(dog) cannot convert argument 1 from lizard to dog" (void pet(dog) を読み取る未拡張のエントリが表示されます。引数 1 をトカゲから dog に変換することはできません。 3 番目のエントリが展開され、"関連する制約が満たされていません" というエントリが表示されます。 このエントリには、"pettable lizard の概念が false に評価されました" という読み上げの拡張された子が含まれます。 このエントリには 2 つの子があります。 1 つ目は説明されておらず、「トカゲが false に評価has_member_pet概念」と読み上げられます。 2 つ目は拡張され、「トカゲが false に評価has_default_pet概念」と読み上げられます。 この 2 番目の子には 2 人の子があり、どちらも展開できません。 彼らは、「is_pettableはトカゲのメンバーではない」と「トカゲの宣言を参照してください」と読みます。

Project>Properties>Advanced>Enable MSVC Structured Output オプションを使用して、構造化診断を有効または無効にします。 UseStructuredOutput プロパティを true または false に定義して Directory.Build.props ファイルを作成することで、複数のプロジェクトに影響を与えることができます。