假设类型 T
和长度 size
已知,
如何在调试器中优雅地显示数组数据
?
template<class T>class Container{
void* data; //<-- display it!
int size;
}
在监 window 口 (Visual studio 2015) 中,我可以通过键入显示 container.data
:-
static_cast<T*>(container.data),size
问题他们是否有任何技术(特别是修改Container
中的代码)使这个过程变得自动和优雅——比如std::vector?
换句话说,如果我可以只输入 container
就好了,然后 watch 会显示:-
container
+data (the + button, can click to expand)
--data[0] (expanded)
--data[1]
......
--data[size-1]
我最好的线索是使用 union
,但我不确定。
最佳答案
VS2015 允许通过自定义进行调试可视化定制 .natvis
配置。
在其他功能中,它支持模板类。 Type
元素的 Name
属性接受星号 * 作为可用于模板类名称的通配符。要在可视化条目中引用模板参数,您可以使用 $T1
宏。示例位于 VS2015 Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers
文件夹中。
关于c++ - 在调试器中自动显示具有已知类型和长度的 void*(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39178623/