【发布时间】:2018-05-15 11:21:21
【问题描述】:
我在一个执行大量继承的框架中工作,我发现一个基类的 Natvis 会干扰另一个基类。
这是一个愚蠢的例子:
class MainBase {};
class ExtraBase {};
class Derived: MainBase, ExtraBase {};
有了这个 natvis:
<Type Name="MainBase">
<Expand>
<Item Name="MainBaseItem">23</Item>
</Expand>
</Type>
<Type Name="ExtraBase">
<Expand>
<Item Name="ExtraBaseItem">42</Item>
</Expand>
</Type>
...我明白了: https://i.stack.imgur.com/0dMNu.png
MainBaseItem 的扩展显示良好,但 ExtraBaseItem 的扩展无处可见。
在我的实际情况中,MainBase 等效项的 natvis 非常重要,因此我无法通过添加 Inheritable="false" 来解决问题。为派生类本身添加专门的 natvis 也是不切实际的——派生类有数千个。鉴于这些无益的限制,我能做些什么来让 ExtraBaseItem 出现吗?
【问题讨论】:
标签: visual-c++ visual-studio-2015 natvis