Bonjour à tous,
j'ai un petit soucis concernant la spécialisation d'une méthode :
.h :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)
.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 template<typename T> static String Concat(const IEnumerable<T> &Values);
Code de test :
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 : 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.
Partager