我有一个结构
struct Matrix2d
{
// Column first ordered elements
vector<int> m_elements;
int m_numRows;
int m_numCols;
};
m_elements 存储 {0, 1, 2, 3, 4, 5, 6, 7, 8} 来表示二维矩阵
0, 3, 6
1, 4, 7
2, 5, 8
使用 Natvis 中的 ArrayItems 功能,我可以得出以下结论:
使用 natvis 代码:
<Type Name="Matrix2d">
<Expand>
<ArrayItems>
<Direction>Backward</Direction>
<Rank>2</Rank>
<Size>$i==0?m_numRows:m_numCols</Size>
<ValuePointer>&m_elements[0]</ValuePointer>
</ArrayItems>
</Expand>
</Type>
但这真的很难看,我宁愿每一行都是一个项目,而不是每个元素都是一个项目,就像 array2d 的可视化方式一样。
您将如何在 Natvis 中编写代码以使 Matrix2d 可以以这种方式可视化?