Hi, I stumbled upon a interesting problem: given a container -- how to implement it's swap(C& o) member function and swap(C& c1, C& c2) function correctly. The trick is that I have no idea whether container member variable(s) have swap() defined for it (in which case I would like to use it via Koenig lookup) or not (in which case I'd like to