我可以在C ++结构上实现.ToString()以进行调试吗?

在C#中,如果我定义了一个struct,我也可以覆盖ToString()。 然后当我调试并添加一个监视或将鼠标hover在结构的一个实例上时,工具提示将是计算的ToString()而不是结构的类型名称。

我能以某种方式在C ++和/或C ++ / CLI中这样做吗? 也就是说,我可以将方法定义为结构的一部分(或做其他任何事情),这会导致监视值/工具提示显示我选择的字符串吗? Visual Studio for C / C ++中的默认字符串呈现是所有结构的字段值的列表(或者可以卡在小框中的数量)。

我的类型都是C风格的结构。 (在我将文件转换为.cpp并修复了一些类型问题之前,它实际上是用C编写的,因此我可以在CLI中运行它。)这是一个示例结构:

struct other_dollars_node { struct other_dollars_node *next_other_dollars; override *overrides; long other_dollars_id; tm effective_date; double amount; } 

我对C ++ / CLI的经验很少 – 我的大部分经验都是使用原生C / C ++和C#。 我正在使用Visual Studio 2013。

更新:由于几乎所有现有代码都使用本机C语法,并且我更喜欢无需重构的解决方案,因此CLI方面可能不那么重要。

我想你想要做的是为你的原生结构提供一个调试器可视化。 我在MSDN上做了一些搜索,找到了这个页面: 在调试器中创建本机对象的自定义视图 。

基本上,您需要做的是将文件添加到C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers以告诉Visual Studio如何在调试器窗口中显示您的结构。 那里有很多例子,上面的链接提供了一些很好的解释,但我承认我自己没有尝试过。