Template et surcharge d'operateurs
Résolu
Ouups66
-
Ouups -
Ouups -
Bonjour,
Dans le cas ou l'on surcharge des operateurs qui sont des methodes "friend" de la classe il faut ecrire le code dans un fichier .cpp a part. Ce que je ne comprends pas c'est comment si l'on utilise les templates inclure ce code pour qu'il soit correctement vu?...
Car je fais un #include "<nomdefichier>.tpp" ce qui ne pose pas de probleme et me permet d'effectuer la declaration du code de facon separer et de ne pas tout avoir dans le .h
En revanche j'obtiens a la compil un Warning:
..._Stype.h:193: warning: friend declaration `_Stype<T> operator+(const _Stype<T>&, const _Stype<T>&)' declares a non-template function
ce qui se traduit dans le programme de test(main):
...main.cpp:129: undefined reference to 'operator*(_Stype<float> const&, _Stype<float> const&)'
et par consequent comme il ne comprends pas ou chercher la fonction ou quoi lui passer au linkage j'ai ca:
:-1: error: collect2: ld returned 1 exit status
Donc si qq1 comprends comment on peut faire je suis ouvert a toutes suggestion.
Merci d'avance.
Dans le cas ou l'on surcharge des operateurs qui sont des methodes "friend" de la classe il faut ecrire le code dans un fichier .cpp a part. Ce que je ne comprends pas c'est comment si l'on utilise les templates inclure ce code pour qu'il soit correctement vu?...
Car je fais un #include "<nomdefichier>.tpp" ce qui ne pose pas de probleme et me permet d'effectuer la declaration du code de facon separer et de ne pas tout avoir dans le .h
En revanche j'obtiens a la compil un Warning:
..._Stype.h:193: warning: friend declaration `_Stype<T> operator+(const _Stype<T>&, const _Stype<T>&)' declares a non-template function
ce qui se traduit dans le programme de test(main):
...main.cpp:129: undefined reference to 'operator*(_Stype<float> const&, _Stype<float> const&)'
et par consequent comme il ne comprends pas ou chercher la fonction ou quoi lui passer au linkage j'ai ca:
:-1: error: collect2: ld returned 1 exit status
Donc si qq1 comprends comment on peut faire je suis ouvert a toutes suggestion.
Merci d'avance.
A voir également:
- Template et surcharge d'operateurs
- Surcharge antenne - Forum TNT / Satellite / Réception
- Surcharge lnb - Forum TNT / Satellite / Réception
- Court circuit LNB - Forum TNT / Satellite / Réception
- Template powerpoint qui veut gagner des millions - Forum Powerpoint
- Template sommaire word - Guide
1 réponse
j'avais pas assez cherche!!! (oui je sais c'est pas bien ;o)
https://www.developpez.net/forums/d22604/c-cpp/cpp/templates-friend/
voir le post de "laurent gomila" la solution se trouve en fait dans une utilisation particuliere lorsqu'on utilise les templates avec la surcharge des operateurs et friend donc il fallait rendre le type de la donnee lui aussi generique!
Mon code compile et je peux change mes types come je le souhaite.
Voila j'espere que ca pourra quand meme aider un petit peu.
https://www.developpez.net/forums/d22604/c-cpp/cpp/templates-friend/
voir le post de "laurent gomila" la solution se trouve en fait dans une utilisation particuliere lorsqu'on utilise les templates avec la surcharge des operateurs et friend donc il fallait rendre le type de la donnee lui aussi generique!
Mon code compile et je peux change mes types come je le souhaite.
Voila j'espere que ca pourra quand meme aider un petit peu.