如何检查模板的哪些部分被实例化?

时间:2010-11-04 01:33:43

标签: c++ windows templates code-generation

我有一个巨大的模板文件,只使用了很少的功能,我想隔离那部分进行测试并评论另一半。我怎样才能找到最好的方法呢?

如何在Windows系统上执行此操作,模板文件是.hxx?

2 个答案:

答案 0 :(得分:1)

我喜欢穆罕默德的回答。哎呀......他删除了它 - 但基本上 - 使用像nm这样的工具 - 我不知道一个等效的窗口,但肯定会有一个 - 查询对象的即时消息。虽然您的模板可能位于.hxx中,但您只能有意义地讨论由某些客户端代码实例化的方法子集。您可能需要在禁用内联的情况下进行此分析,以确保函数体实际上在对象文件中以有形形式实例化。

在不太可能的事件中,您可能已经实例化了某些内容,因为某些代码会处理您知道数据没有 - 并且不会演变为 - 使用的情况,那么您可能更喜欢自动运行时覆盖率分析。许多编译器(例如GCC的g ++ -ftest-coverage)和工具(例如purecov)提供了这个。

答案 1 :(得分:0)

如何评论出整个文件,然后在链接器抱怨时取消注释单个方法,直到程序可以编译?

顺便说一句,如果您使用的是Visual Studio,则只需使用以下快捷键注释整个文件:Ctrl + A,然后按Ctrl + K + C.您可以使用Ctrl + K + U取消注释所选行。