#include <iostream>
namespace A
{
struct X {};
void F(X)
{
std::cout << "A::F(A::X)" << std::endl;
}
/*
void G(X)
{
std::cout << "A::G(A::X)" << std::endl;
}
*/
}
namespace B
{
void G(A::X)
{
std::cout << "B::G(A::X)" << std::endl;
}
struct Y
{
friend void Call(Y)
{
F(A::X());
G(A::X());
Call(Y());
};
};
}
int main(void)
{
Call(B::Y());
return 0;
}