Visual Studio.natvis 文件 - 矩阵

Visual Studio .natvis file - matrices

我正在尝试在 Visual Studio 2013 调试器中显示矩阵 class。 class 的相关部分是这样的:

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>

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

您可以指定基本表达式,调试器会计算它们,尝试使用:

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

Visual studio 2015接受这个,我没有安装2013了