Bonjour à tous,

j'ai un petit soucis concernant la spécialisation d'une méthode :

error LNK2019: unresolved external symbol "public: static class String __cdecl String::Concat<int>(class IEnumerable<int> const &)" (??$Concat@H@String@@SA?AV0@ABV?$IEnumerable@H@@@Z) referenced in function "void __cdecl Test_System___String(void)" (?Test_System___String@@YAXXZ)
.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
template<typename T>
static String		Concat(const IEnumerable<T> &Values);
.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
template<typename T>
String String::Concat(const IEnumerable<T> &Values)
{
        return ("Default");
}
 
template<>
String String::Concat<Object>(const IEnumerable<Object> &Values)
{
	return ("Spec");
}
Code de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
String Test004 = String::Concat(List1); // List1 conctient des int (cette ligne pause problème
String Test005 = String::Concat<Object>(List2); // fonctionne correctement ac la spécialisation

Si quelqu'un sait pourquoi avec les int, la méthode d'origine n'est pas appelée...

Merci d'avance.