[英]How to debug template arguments at compile-time?
我有一段代码,几乎减少到:
template<class T> struct MyStruct; // No definition by default
template<class T> struct MyStruct<T *> { ... }; // Specialization for pointers
现在在我的代码中的某个地方 ,我得到了一个MyStruct<T>
的实例化,它恰好是未定义的(没有C ++ 0x / 011,没有Boost ......没什么特别的,只是普通的C ++ 03):
error C2027: use of undefined type 'MyStruct<T>'
麻烦的是, 我不知道在哪里 ,这是所引起 ,因为这是做实例代码本身就是一个模板,从许多地方调用,使用不同的参数。
有没有办法以某种方式弄清楚T
在编译时是什么 ,所以我能更好地理解错误信息?
(对不起,我忘了提及:Visual Studio 2008.)
我相信你正在使用MSVC ++,如果是这样,然后看到输出窗口,它可能会打印更多信息,特别是行号和文件名。 一旦知道文件和行号,就可以从那里开始。
输出窗口通常打印所有内容,例如如何以及使用什么模板参数,模板实例化。 一切都在循序渐进。 调试时这些消息非常有用。
正如您自己发现的那样,启用/ WL会在输出窗口中打印更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.