fork download
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. namespace foo
  5. {
  6. struct Bar
  7. {
  8. int data;
  9. };
  10.  
  11. void swap(Bar& a, Bar& b)
  12. {
  13. std::cout << "foo::swap" << std::endl;
  14.  
  15. int temp = a.data;
  16. a.data = b.data;
  17. b.data = temp;
  18. }
  19. }
  20.  
  21. int main()
  22. {
  23. foo::Bar bar1, bar2;
  24.  
  25. bar1.data = 42;
  26. bar2.data = 777;
  27.  
  28. std::cout << bar1.data << ' ' << bar2.data << std::endl;
  29.  
  30. using std::swap;
  31. swap(bar1, bar2); // Call foo::swap not std::swap.
  32.  
  33. std::cout << bar1.data << ' ' << bar2.data << std::endl;
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 4328KB
stdin
Standard input is empty
stdout
42 777
foo::swap
777 42