Je ne m’y suis remis que récemment, alors je vais peut-être dire une bêtise (j’ai pas bien compris à quoi servait le extern template du C++11), toutefois mon astuce pourrait améliorer les temps de compilation je suppose.
Ce que je fais, c’est créer un .h, par exemple (bidon) :
template<classT>voidf(T);
et un .cpp :
template<classT>voidf(Tx){std::cout<<x<<std::endl;}templatevoidf<int>(int);templatevoidf<string>(string);// etc.
Ainsi je compile le nécessaire dans mon .cpp, une fois et un seule, tandis que l’inclusion de mon .h ne me coûte rien en terme de temps de compilation.
Le seul inconvénient, c’est qu’il faut prévoir tous les cas possibles dans le .cpp.
# pré-compilation ?
Posté par Pierre Roc . En réponse au journal Brèves de Pythran. Évalué à 2.
Je ne m’y suis remis que récemment, alors je vais peut-être dire une bêtise (j’ai pas bien compris à quoi servait le extern template du C++11), toutefois mon astuce pourrait améliorer les temps de compilation je suppose.
Ce que je fais, c’est créer un
.h, par exemple (bidon) :et un
.cpp:Ainsi je compile le nécessaire dans mon .cpp, une fois et un seule, tandis que l’inclusion de mon .h ne me coûte rien en terme de temps de compilation.
Le seul inconvénient, c’est qu’il faut prévoir tous les cas possibles dans le
.cpp.