• # pré-compilation ?

    Posté par . 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) :

    template <class T>
    void f (T);

    et un .cpp :

    template <class T>
    void f (T x)
    {
     std::cout << x << std::endl;
    }
    template void f<int> (int);
    template void f<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.