#include <iostream>

namespace A {
 class N { };
 void swap(N& a, N& b) { std::cout << "swap N" << std::endl; }
}

int main() {
 using std::swap;
 A::N a, b;
 int c, d;
 swap(a, b); // A::swap が呼ばれる
 swap(c, d); // std::swap が呼ばれる(using が必要)
}

名前空間関連のC++の仕様は複雑だよなあ