Re-bonjour, j'ai aussi un problème, concernant cette fois la surcharge de l'opérateur << pour des streams lorsqu'on se trouve à l'intérieur d'un namespace.

voici un bout de code en tant qu'exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
//header.h
namespace fooname
{
    class CFoo
    {
         /*...*/
         FOO_API friend std::ostream& operator<<(std::ostream& os, const CFoo& foo);
    };
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
//source.cpp
namespace fooname
{
     std::ostream& operator<<(std::ostream& os, CFoo& foo)
     {
           os << /* membres de CFoo */ << std::endl;
           return os;
     }
}
Ceci compile, mais j'ai l'impression que je n'ai pas surchargé le bon opérateur.
J'obtiens des erreurs linkage si je veut accéder à cette fonction.

D'où ma question, si ce code n'est pas valable, que manque-t-il pour que ca fonctionne? Serait-ce l'operateur<< lui-même qui doit être membre de std::ostream, ou encore autre chose ?