2

テキストビジュアライザーを使用して、配列の配列よりも読みやすい方法でマトリックスクラスを視覚化しようとしています。ただし、最も単純なルールでさえ機能しません。autoexp.dat のルールは次のとおりです。

; Custom visualizers for RTSG data types.
RTSG::Matrix44<float> {
  preview(
    #(
      "foo", "bar"
    )
  )
  stringview(
    #(
      "foo", "bar"
    )
  )
}

クラス定義は次のとおりです。

template <class T> class Matrix44
{
public:
    T       x[4][4];

    // omitted methods, no other data members are declared
}

ただし、VS はウォッチ ウィンドウに次のように表示します。

{x=0x0283e530 }

テキストビジュアライザーを起動するための虫めがねはありません。私は何を間違っていますか?

OS: Win 7 64 ビット、VS: 2008 v3.5 SP1

更新:また、VS が常に autoexp.dat の変更に反応するわけではなく、多少の遅延が発生したり、デバッガーが数回再起動された後にそれらを考慮したりすることにも気付きました。ほとんどの場所で説明されているように、デバッガーを 1 回だけ再起動する必要があり、デバッガーは起動するたびにこのファイルを読み取るため、変更を考慮する必要があります。これは私のマシンには当てはまらないようです。

4

2 に答える 2

3

これは、私の 4x4 マトリックス クラスの最終的なビジュアライザーです。

RTSG::Matrix44<*> {
  stringview(
    #(
      "'",
      [$e.x[0][0]], ['\t'], [$e.x[0][1]], ['\t'], [$e.x[0][2]], ['\t'], [$e.x[0][3]], ['\n'],
      [$e.x[1][0]], ['\t'], [$e.x[1][1]], ['\t'], [$e.x[1][2]], ['\t'], [$e.x[1][3]], ['\n'],
      [$e.x[2][0]], ['\t'], [$e.x[2][1]], ['\t'], [$e.x[2][2]], ['\t'], [$e.x[2][3]], ['\n'],
      [$e.x[3][0]], ['\t'], [$e.x[3][1]], ['\t'], [$e.x[3][2]], ['\t'], [$e.x[3][3]],
      "'"
    )
  )
}

テキスト ビジュアライザーで使用します。多くの一重引用符を生成しますが、列に 16 個の値よりも優れています。この行列は、列優先のストレージ、行優先のフリップ インデックスを使用します。

于 2012-03-09T15:42:26.917 に答える
1

より一般的なルールを試しましたか:

RTSG::Matrix44<*> {
  preview(
    #(
      "foo", "bar"
    )
  )
  stringview(
    #(
      "foo", "bar"
    )
  )
}

autoexp.dat ファイルの先頭にも配置してみてください。

これが機能しなかった場合、最も単純なルールは機能しないと効果的に言えます:p Cheers

于 2012-03-07T23:01:09.990 に答える