#include <iostream>

class alloc
{

};

template <typename T, typename Alloc = alloc>
class vector
{
public:
    void swap(vector<T,Alloc> &v) { std::cout << "swap()" << std::endl; }
};


template <typename T, typename Alloc>
void swap(const vector<T,Alloc> &v1,const vector<T,Alloc> &v2)
{
    v1.swap(v2);
}

int main()
{
    vector<int> x;
    vector<int> y;

    swap(x,y);

    return 0;
}
