可以使用哪些技术来加速C++编译时间?
这个问题出现在Stack Overflow问题C++编程风格的一些评论中,我很想知道它有什么想法.
我见过一个相关的问题,为什么C++编译需要这么长时间?,但这并没有提供很多解决方案.
每当类声明仅使用另一个类作为指针时,使用类前向声明而不是包含头文件是否有意义,以便先发制人地避免循环依赖的问题?所以,而不是:
//file C.h
#include "A.h"
#include "B.h"
class C{
A* a;
B b;
...
};
Run Code Online (Sandbox Code Playgroud)
改为:
//file C.h
#include "B.h"
class A;
class C{
A* a;
B b;
...
};
//file C.cpp
#include "C.h"
#include "A.h"
...
Run Code Online (Sandbox Code Playgroud)
有什么理由不尽可能不这样做吗?
我一直在为我的大学项目寻找恐惧SDK,但是我注意到了一些类似的代码:
foo.h中
class Foo
{
public:
int iSomething;
};
Run Code Online (Sandbox Code Playgroud)
Bar.cpp:
#include "Foo.h"
// Forward declarations
class Foo;
Run Code Online (Sandbox Code Playgroud)
是否有任何特殊原因要转发声明并在同一个cpp文件中包含相应的标头?或者前向声明是多余的,因为标题包含在内?
编辑:
每次我在代码中看到它时,include语句总是在前向声明之前.