#include <iostream>

namespace N {
    
    class C;
    int f(const C&);
    
    class C {
    public:
        friend int f(const C& c)
        {
            std::cout << __PRETTY_FUNCTION__ << '\n';
            return 1;
        }
        
        friend int g(const C& c)
        {
            std::cout << __PRETTY_FUNCTION__ << '\n';
            return 2;
        }
    };
    
    class D {
    public:
        void f()
        {
            g(C{});     //ADL finds this
            N::f(C{});  //not found dispite full qualification
        }
    };
}

int main()
{
    N::D d;
    d.f();
}