Tout d'abord, je tiens à préciser que j'ai lu la solution. {fourni ici} qui stipule que
Notez que les opérateurs de flux de sortie ne sont généralement pas des fonctions membres. (En effet, pour que les opérateurs binaires soient des fonctions membres, ils doivent être membres du type de leur argument de gauche. Or, il s'agit d'un flux, et non de votre propre type. Il y a l'exception de quelques surcharges de operator<<() pour certains modules intégrés, qui sont membres de la classe de flux de sortie).
Voici mon problème. Je supprimais une bibliothèque d'une grande application. La bibliothèque était censée condenser toutes ses fonctionnalités utiles dans un fichier d'en-tête.
L'une des classes de ce fichier d'en-tête doit avoir une surcharge de l'opérateur stream <<. Je ne sais pas comment faire sans utiliser une fonction amie, et si j'utilise une fonction amie, je ne peux pas tout faire dans un fichier d'en-tête parce que j'obtiendrais de multiples erreurs de définition.
Existe-t-il donc une astuce - peut-être un jeu avec les foncteurs, les wrappers, ou autre, qui me permettrait d'écrire une définition pour la surcharge de l'opérateur pour << dans ma classe afin d'éviter ce problème ?