Bonjour,
Veuillez accepter mes excuses, en effet je n'arrive pas à reproduire ce que j'ai fait.
J'avais pris l'info ici, et l'ai mal interprétée:
http://en.wikipedia.org/wiki/C%2B%2B11#Extern_templateA l'endroit où elles sont instanciées, les classes doivent toujours être complètement définies.
Ceci dit, ce que j'ai indiqué avoir fait dans le post précédent, je l'ai réellement fait, et je n'ai pas encore compris pourquoi ça marche. A aucun moment je n'instancie explicitement la classe que j'ai développée, et j'ai effectivement déplacé la définition des fonctions dans le cpp.
De fait, si on externalise les fonctions, il semble qu'il soit obligatoire d'y ajouter une instanciation explicite sans quoi on se prend une erreur type 'référence à fonction maclasse<int>::maclasse() non définie'.
Finalement, en utilisant le mot-clé extern qui permet d'empêcher l'instanciation immédiate, et l'instanciation explicite dans le cpp, on peut effectivement écrire les classes template comme je le souhaite (simplement, dans ce cas là, on limite l'utilisation de la classe aux génériques instanciés, sans permettre à l'utilisateur d'en créer de nouveaux).
Et c'est la raison pour laquelle, si vous voulez bien, je maintiens ma demande.
Cordialement,
Marc