Visual Studio .natvis file - матрицы

Я пытаюсь отобразить матричный класс в отладчике 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>

Но, похоже, нет никакого способа дать измерения в виде литералов или отдельных переменных, только как массив для индексации. Кто-нибудь знает, есть ли способ сделать это?

1 ответ

Решение

Вы можете указать основные выражения, и отладчик оценит их, попробуйте использовать:

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

Visual Studio 2015 принимает это, у меня больше не установлено 2013.

Другие вопросы по тегам