我的C ++代码编译时间非常长,我在外部库中使用了一些模板函数。
示例:
//fun.h
template <class T>
T fun(T in){
...
}
//main.cpp
#include fun.h
class A{...};
int main(){
A a,b;
...
b=fun<A>(a); //this line causes the long compilation time, because fun is really complicated
...
}
我正在考虑以某种方式定义新功能
funA := fun<A>
在单独的头文件中并预编译它。所以每次我改变main.cpp我都不需要构建
fun<A>
又一次又一次。但我不知道该怎么做。我认为你只需要上课
typedef class<A> classA;
在预编译的标题中,你就完成了。但是如何用功能来做呢?
答案 0 :(得分:1)
wrap_fun.h
:
A funA(A a);
wrap_fun.C
:
#include "wrap_fun.h"
#include "fun.h"
A funA(A a)
{
return fun(a); // Should deduce type automatically.
}