#include <stdio.h>
#include <utility>
namespace test {
struct foo {
void swap(foo &) {
printf("foo swap\n");
}
};
inline void swap(foo &a, foo &b) {
a.swap(b);
}
}
int main() {
test::foo a, b;
using std::swap;
swap(a, b);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1dGlsaXR5PgoKbmFtZXNwYWNlIHRlc3QgewogICAgc3RydWN0IGZvbyB7CiAgICAgICAgdm9pZCBzd2FwKGZvbyAmKSB7CiAgICAgICAgICAgIHByaW50ZigiZm9vIHN3YXBcbiIpOwogICAgICAgIH0KICAgIH07CgogICAgaW5saW5lIHZvaWQgc3dhcChmb28gJmEsIGZvbyAmYikgewogICAgICAgIGEuc3dhcChiKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICB0ZXN0Ojpmb28gYSwgYjsKICAgIHVzaW5nIHN0ZDo6c3dhcDsKICAgIHN3YXAoYSwgYik7Cn0=