#include <iostream>
namespace so
{
struct foo { int x; };
inline bool do_it(foo const &, foo const &)
{
std::cout << "so" << std::endl;
return (true);
}
struct other
{
inline static bool do_it(so::foo const &, so::foo const &)
{
std::cout << "so::other" << std::endl;
return (true);
}
static void somefunc(so::foo const & a, so::foo const & b)
{
do_it(a, b);
}
};
}
int main()
{
so::foo a_, b_;
so::other::somefunc(a_, b_);
return (0);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKbmFtZXNwYWNlIHNvCnsKc3RydWN0IGZvbyB7IGludCB4OyB9OwoKaW5saW5lIGJvb2wgZG9faXQoZm9vIGNvbnN0ICYsIGZvbyBjb25zdCAmKQp7CiBzdGQ6OmNvdXQgPDwgInNvIiA8PCBzdGQ6OmVuZGw7CiByZXR1cm4gKHRydWUpOwp9CgpzdHJ1Y3Qgb3RoZXIKewppbmxpbmUgc3RhdGljIGJvb2wgZG9faXQoc286OmZvbyBjb25zdCAmLCBzbzo6Zm9vIGNvbnN0ICYpCnsKIHN0ZDo6Y291dCA8PCAic286Om90aGVyIiA8PCBzdGQ6OmVuZGw7CiByZXR1cm4gKHRydWUpOwp9CgpzdGF0aWMgdm9pZCBzb21lZnVuYyhzbzo6Zm9vIGNvbnN0ICYgYSwgc286OmZvbyBjb25zdCAmIGIpCnsKIGRvX2l0KGEsIGIpOwp9Cn07Cgp9CgppbnQgbWFpbigpCnsKIHNvOjpmb28gYV8sIGJfOwoKIHNvOjpvdGhlcjo6c29tZWZ1bmMoYV8sIGJfKTsKIAogcmV0dXJuICgwKTsKfQ==