昨天我发现了MSVC 的“Natvis”工具,它允许您调整调试器以智能的方式呈现您的类型。我很快开始美化我的数学库。
这是我的 3*3 矩阵类的外观(未初始化的数据):
华丽,对吧?我的下午没有遗憾。
但是,现在我们遇到一个稍微复杂一点的情况:
如您所见,数字不对齐。我已经找到了一种 讨厌的方法来让负数与正数对齐,但是我的方法无法解决这个问题(这是我的基本大纲):
<Type ...>
<DisplayString>...</DisplayString>
<Expand ...>
<Synthetic ...>
<DisplayString ...>...</DisplayString>
</Synthetic>
...
</Expand>
</Type>
正在发生的事情是打印的位数因数字而异。
因此我的问题是:我可以将 Natvis 配置为打印明确定义的位数以进行调试吗?或者,也许您有一个聪明的解决方法?
PS:如果我能正常工作,我会很乐意上传生成“.natvis”文件的 Python 脚本供大家使用,以供您自己的类型使用。