#include
namespace A {
struct s_t{};
void func (s_t )
{ std::cout << "A::func!n"; }
}
namespace B {
struct s_t{};
template
void func (T )
{ std::cout << "B::func!n"; }
}
template
void func (T & )
{ std::cout << "GLOB::func!n"; }
int main ()
{
using namespace A;
func (s_t());
func (B::s_t {});
return 0;
}