J'ai une classe de modèle que j'essaie de instancier explicitement:C modèle explicite de l'instanciation d'un opérateur
template<T>
struct tmat2x3
{
...
typedef tvec3<T> col_type;
..
};
l'opérateur est déclaré comme suit:
template <typename T>
typename tmat2x3<T>::row_type operator* (tmat2x4<T> const & m, typename tmat2x3<T>::col_type const & v);
Je suis l'instanciation explicitement l'opérateur en utilisant ce qui suit:
template tmat2x3<unsigned char>::row_type operator * (tmat2x3<unsigned char> const &m, tmat2x3<unsigned char>::col_type const &s);
gcc me donne l'erreur suivante cependant:
../glm/glm_core.cpp: In instantiation of ‘typename glm::detail::tmat2x3<T>::row_type glm::detail::operator*(const glm::detail::tmat2x3<T>&, const typename glm::detail::tmat2x3<T>::col_type&) [with T = unsigned char]’:
../glm/glm_core.cpp:443: instantiated from here
../glm/glm_core.cpp:443: error: explicit instantiation of ‘typename glm::detail::tmat2x3<T>::row_type glm::detail::operator*(const glm::detail::tmat2x3<T>&, const typename glm::detail::tmat2x3<T>::col_type&) [with T = unsigned char]’ but no definition available
Une idée de ce que je fais mal?
Merci à l'avance
Avez-vous le corps off opérateur disponible lorsque vous instantiated explicitement? – Anycorn
Vous nous avez montré la déclaration, mais le compilateur se plaint de la définition. Comment définissez-vous le modèle? – Potatoswatter