3

我试图在 Visual Studio 2013 调试器中显示一个矩阵类。类的相关部分是这样的:

class mat {
private:
    size_t rowdim, coldim;
    double* _mem;
};

我试图将其可视化为一个多维数组,但是当它们不作为数组存储时,我无法弄清楚如何指定维度的大小。这就是我正在尝试的:

<Type Name="mat">
    <DisplayString>{{ Matrix {rowdim}x{coldim} }}</DisplayString>
    <StringView>_mem,[rowdim]</StringView>
    <Expand>
        <Item Name="[size]" ExcludeView="simple" >rowdim</Item>
        <ArrayItems>
            <Direction>Forward</Direction>
            <Rank>2</Rank>
            <Size>{rowdim, coldim}</Size>
            <ValuePointer>_mem</ValuePointer>
        </ArrayItems>
    </Expand>
</Type>

但是似乎没有任何方法可以将维度作为文字或不同的变量,仅作为要索引的数组。有谁知道是否有办法做到这一点?

4

1 回答 1

1

您可以指定基本表达式,调试器将评估它们,尝试使用:

<Size>$i == 0 ? rowdim : coldim</Size>

Visual Studio 2015 接受这一点,我不再安装 2013。

于 2015-12-10T21:28:28.613 回答