gpt4 book ai didi

c++ - 在调试器中自动显示具有已知类型和长度的 void*(数组)

转载 作者:行者123 更新时间:2023-11-28 02:01:47 26 4
gpt4 key购买 nike

假设类型 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com