Hello,

J'ai une foultitude de déclarations de templates, telles que celles-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
............
template < typename TYP > bool getMayaAttr(const MFnDependencyNode &depFn, const char *aName, AtRGB &value) const;
template < typename TYP > bool getMayaAttr(const MFnDependencyNode &depFn, const char *aName, AtRGBA &value) const;
template < typename TYP > bool getMayaAttr(const MFnDependencyNode &depFn, const char *aName, MColor &value) const;
template < typename TYP > bool getMayaAttr(const MFnDependencyNode &depFn, const char *aName, MVector &value) const;
template < typename TYP > bool getMayaAttr(const MFnDependencyNode &depFn, const char *aName, MPoint &value) const;
............
Les définitions des spécialisations suivent dans le code.

Parmi ces spécialisations, une me pose problème (dans le morceau de code plus haut, il s'agit de la troisème, avec MColor).

Pour simplifier les choses, voici sa définition, qui figure plus bas dans le même fichier, parmi les autres définitions de spécialisations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
template <> inline
bool AmNode::getMayaAttr(const MFnDependencyNode &depFn, const char *aName, MColor &value) const
{
	return true;
}
Le problème est que pour cette spécialisation, je reçois une erreur lors du linking :

error LNK2019: symbole externe non résolu "public: bool __thiscall AmNode::getMayaAttr<class MColor>(class MFnDependencyNode const &,char const *,class MColor &)const " (??$getMayaAttr@VMColor@@@AmNode@@QBE_NABVMFnDependencyNode@@PBDAAVMColor@@@Z) référencé dans la fonction "public: int __thiscall AmNode::updateColor(class MFnDependencyNode const &,char const *,char const *,struct s_Node *)const " (?updateColor@AmNode@@QBEHABVMFnDependencyNode@@PBD1PAUs_Node@@@Z)

Les autres spécialisations n'ont pas été faites par moi, mais j'ai fait exactement la même chose (il me semble), et je ne sais pas ce que suis censé faire de plus.

Une idée ?

Merci.