#include <iostream>
#include <string>
namespace foo{
struct ug{};
void f(ug&){std::cout<<"foo"<<std::endl;}
ug var;
};
namespace bar{
struct ug{};
void f(ug&){std::cout<<"bar"<<std::endl;}
ug var;
};
template<class TYPE>
void f(TYPE&){std::cout<<"any"<<std::endl;}
void f(...){std::cout<<"..."<<std::endl;}
int main()
{
auto&a=foo::var;
auto&b=bar::var;
std::string c="str";
f(a);
f(b);
f(c);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKbmFtZXNwYWNlIGZvb3sKICBzdHJ1Y3QgdWd7fTsKICB2b2lkIGYodWcmKXtzdGQ6OmNvdXQ8PCJmb28iPDxzdGQ6OmVuZGw7fQogIHVnIHZhcjsKfTsKbmFtZXNwYWNlIGJhcnsKICBzdHJ1Y3QgdWd7fTsKICB2b2lkIGYodWcmKXtzdGQ6OmNvdXQ8PCJiYXIiPDxzdGQ6OmVuZGw7fQogIHVnIHZhcjsKfTsKdGVtcGxhdGU8Y2xhc3MgVFlQRT4Kdm9pZCBmKFRZUEUmKXtzdGQ6OmNvdXQ8PCJhbnkiPDxzdGQ6OmVuZGw7fQp2b2lkIGYoLi4uKXtzdGQ6OmNvdXQ8PCIuLi4iPDxzdGQ6OmVuZGw7fQppbnQgbWFpbigpCnsKICBhdXRvJmE9Zm9vOjp2YXI7CiAgYXV0byZiPWJhcjo6dmFyOwogIHN0ZDo6c3RyaW5nIGM9InN0ciI7CiAgZihhKTsKICBmKGIpOwogIGYoYyk7Cn0=