surcharge d'operator<< à l'intérieur de namespace
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:
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:
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 ?