• # Templates et C++03

    Posté par . En réponse au message Problème de templates: undefined reference. Évalué à 3.

    N'oublie pas que les templates génèrent du code pour chaque paramètre template différent. Cela veut dire que si le compilateur n'a pas le code de URI::splitScheme lorsque tu l'utilise, alors il ne pourra pas le générer tout seul. Il faut voir ça un peu comme une macro: il faut qu'elle soit définie pour être utilisable.

    en C++03 en tout cas. Normalement, cela n'est plus nécessaire en C++11 (le standard oblige à ce que ça marche dans ton cas), mais gcc ne le supporte pas (ou du moins, pas à ma connaissance).

    En C++03, tu à le choix entre :
    - Mettre le code de splitScheme dans un header et l'inclure.
    - déclarer explicitement quel intanciations tu à besoin dans URI.cpp, et utiliser export, sachant que très peu de compilos le supportent (et ceux qui le supportent pensent que c'est une mauvaise idée) à tel point que ça à été enlevé dans C++11.

    Ouais, donc en gros, tu n'a pas le choix quoi.