加速模板函数编译

时间:2012-03-08 22:16:27

标签: c++ templates precompiled-headers

我的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;

在预编译的标题中,你就完成了。但是如何用功能来做呢?

1 个答案:

答案 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.
}