#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);
}