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 }

并且没有放大镜来启动文本可视化器。我究竟做错了什么?

操作系统:Win 7 64 位,VS:2008 v3.5 SP1

更新:我还注意到 VS 并不总是对 autoexp.dat 中的任何更改做出反应,但会在一些延迟或调试器重新启动几次后将它们考虑在内。如大多数地方所述,只需重新启动调试器一次,并且应考虑更改,因为调试器每次启动时都会读取此文件。在我的机器上似乎不是这种情况。

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 干杯

于 2012-03-07T23:01:09.990 回答