【发布时间】:2010-02-19 16:32:08
【问题描述】:
我有一个已经存在了一段时间的大型代码库,我正试图通过重构它来稍微整理一下。我想做的一件事是找到我可以转发声明成员的所有头文件,而不是包括整个头文件。
这是一个相当耗费人力的过程,我正在寻找一种工具来帮助我确定哪些标头具有可以向前声明的成员。
是否有编译器设置可以发出警告或建议以下代码可以使用前向声明?我正在使用以下编译器 icc、gcc、sun studio 和 HP 的 aCC
是否有可以完成相同工作的独立工具?
#include "Foo.h"
...//more includes
class Bar {
.......
private:
Foo* m_foo;
};
【问题讨论】:
-
如果能开发出这样的工具就好了。如果它还可以指出我项目中的所有全局变量,我也会很高兴 - 它们是我们代码库中线程化的主要障碍。
-
谨慎地将
#include转换为前向声明。源文件需要有#include。 -
@Lyndsey:DMS(请参阅我对这篇文章的回答)可以轻松挑选出您的全局变量。它可以配置为修改对全局变量的所有访问,对包含这些全局变量的线程局部实例的“上下文”结构的访问。
-
太好了,我会收藏它并检查一下。谢谢。
-
这些最后都起作用了吗?这也是我想在工作中做的事情。
标签: c++ compiler-construction refactoring forward-declaration