namespace std {
class ostream;
}
namespace N2 {
class C0 {};
}
std::ostream& operator<<( std::ostream& os_, const N2::C0& m_);
namespace N1 {
class C1 {
friend std::ostream& operator<<(std::ostream& os, const C1& what);
};
class C2 {
friend std::ostream& operator<<(std::ostream& os, const C2& what);
};
void foo(std::ostream & os, const N2::C0& m)
{
os << m; // Is this line valid?
}
}