3

したがって、C と B の 2 つのクラスがあり、合成関係があるとします。C は B で構成されています。

struct C
{
};

struct B
{
  C c;
};

現在、C の 2 つのビューを含む natvis ファイルがあります。このビューを B から C に明示的に伝播する必要がありますか? natvis ファイルには表示されているタイプが記述されていないため、ビューを伝播させたい場所が見つからないため、これは非常に面倒に思えます。また、これはコンテナでは機能しません。個々のアイテムのビューしかありません。

編集:

例:

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="C">
    <DisplayString>View 1</DisplayString>
  </Type>

  <Type Name="C" IncludeView="two">
    <DisplayString>View 2</DisplayString>
  </Type>

  <Type Name="B">
    <DisplayString>B</DisplayString>
    <Expand>
      <Item Name="C">c</Item>
    </Expand>
  </Type>
</AutoVisualizer>

ウォッチ ウィンドウでb、型の変数を確認しますB。それを見るには、次のように入力します。

b, view(two)

ビューが のビューに伝播することを期待していますc。しかし、そうではありません。代わりに次のように表示されます。

c    View 1

書く必要なし:

  <Type Name="B">
    <DisplayString>B</DisplayString>
    <Expand>
      <Item Name="C" ExcludeView="two">c</Item>
      <Item Name="C" IncludeView="two">c</Item>
    </Expand>
  </Type>

どうすればこれを達成できますか?

4

1 に答える 1