Hello,
J'ai une foultitude de déclarations de templates, telles que celles-ci :
Les définitions des spécialisations suivent dans le code.
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; ............
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 :
Le problème est que pour cette spécialisation, je reçois une erreur lors du linking :
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; }
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.
Partager