Bonjour,
Petite question concernant les templates en C++ :
En gros, j'ai une fonction qui peut avoir plusieurs variantes selon le type de son paramètre, mais la structure de la fonction est la même pour toutes les variantes, seul le type du paramètre change, j'aimerai donc utiliser les templates pour ne pas avoir à répéter mon code plusieurs fois inutilement (et c'est plus simple à maintenir), voilà un exemple concret :
J'ai un fichier fct.h avec la déclaration d'une fonction :
template<typename T>
void fct(T _arg);
Puis la définition dans un fichier fct.cpp :
#include "fct.h"
template<typename T>
void fct(T _arg) { }
Enfin, un fichier main.cpp principal :
#include "fct.h"
fct(int);
fct(float);
ect.
ça se compile, mais le linkage bug, car il ne trouve pas fct(int) ni fct(float)
La seule solution que j'ai trouvé pour l'instant c'est de mettre la définition carrément dans le .h, mais personnellement je ne trouve pas ça très propre...
Y'a t'il une autre solution plus correcte ? ou une autre manière sans utiliser les templates pour ce même problème ?