У меня проблема с очень долгим временем компиляции моего кода 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;
в предварительно скомпилированный заголовок, и все готово.Но как это сделать с помощью функций?