template <typename T>
void swap(T& a, T& b) {
T tmp(a);
a = b;
b = tmp;
}
template <typename T>
void swap(T& a, T& b) {
T tmp(a);
a = b;
b = tmp;
}
class People { public: People() { cout << " construct fun " << endl; } People(const People&