commence par mettre le meme prototype dans la déclaration friend que dans la définition.
ensuite, on ne spécialise pas une fonction template avant d'avoir déclaré cette fonction template.
Code :
- template <class T> class Queue;
- template <class T>
- ostream& operator<<(ostream& o, const Queue<T> &queue) ;
- template <class T>
- class Queue
- {
- friend ostream& operator<< <>(ostream &o, const Queue<T> &queue) ;
- //...
- } ;
- template <class T>
- ostream& operator<<(ostream& o, const Queue<T> &queue)
- {
- // ...
- return o ;
- }
|
Je ne connais pas de méthode moins élégantes pour faire ça.
Pour plus élégant, prend ton bouton recherche, tu va trouver plusieurs réponses dans les posts de moins de 48 heures
Citation :
PS : je préfère friend, au getter/setter pour question de performance
|
elle est bien bonne celle la