Template & Spécialisation
Bonjour à tous,
j'ai un petit soucis concernant la spécialisation d'une méthode :
Citation:
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:
1 2 3
|
template<typename T>
static String Concat(const IEnumerable<T> &Values); |
.cpp :
Code:
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:
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.