• [^] # Re: pré-compilation ?

    Posté par (site web personnel) . En réponse au journal Brèves de Pythran. Évalué à 5.

    Le mot clef export a en effet été suprimmer.

    Mais en C++11 il y a extern template

    En gros, dans le .h tu fais

    template <class T>
    void f (T x) { std::cout << x << std::endl; }
    extern template void f<int> (int);
    extern template void f<string> (string);

    et dans un .cpp

    template void f<int> (int);
    template void f<string> (string);

    extern template dit au compilateur qu'il n'y a pas besoin d'instancier le template dans cette unité de compilation pour int et string car une autre unité de compilation le fait déjà. Ça permet de gagner du temps de compilation, mais aussi d'éviter des doublons des fonctions dans plusieurs bibliothèques.

    Et sinon, pour diminuer le temps de complations, il faut utiliser les entêtes pré-compilée. Et bientôt il y aura les modules.