gpt4 book ai didi

c++ - 如何使用 VS Debugger 找出模板参数的类型?

转载 作者:太空狗 更新时间:2023-10-29 20:46:24 25 4
gpt4 key购买 nike

我正在处理大量模板化代码,现在需要弄清楚模板参数的类型。

在我简化的以下代码中,您如何调试以找出每个 T 取决于将使用 int、double 或任何其他类型启动 A 的 main() 的类型。

template <class T>
class A // 1
{
public:
typedef T Type;
};

template <class T>
class A<T*> // 2
{
public:
typedef T Type;
};

template <class T>
class A<T**> // 3
{
pbulic:
typedef T Type;
};

我尝试使用 Watch 窗口,但我认为它不能帮助我了解 T 的实际类型。

如果 T 是 int*,我最好以模板化代码的实例化形式查看代码;

 class A // 1
{
public:
typedef int* Type;
};

提前致谢。

最佳答案

也许我误解了你想要什么,但是(即使在老旧的 MSVS 2003 中)Watch(或 Auto)窗口通过“类型”列为我做了很好的工作:

MSVS 2003 Auto window

请注意,在一个程序中 T 可以为不同的实例化采用许多不同的类型(例如,我在图片中的小程序中只有三个),所以问什么类型是没有意义的T 在特定实例化的上下文之外。

如果您单步执行模板类的方法,并在 Watch 窗口中检查 this 的类型,您可以在调用堆栈中看到它:

enter image description here

关于c++ - 如何使用 VS Debugger 找出模板参数的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320335/

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