2

Я пытаюсь отобразить класс матрицы в отладчике Visual Studio 2013. Соответствующая часть класса заключается в следующем:Visual Studio .natvis file - matrices

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 установлен больше.

+0

Хорошее мышление. Я попробую это утром. – Tom