fork download
  1. #include <iostream>
  2.  
  3. #define myswap(a, b) do { (a) ^= (b); (b) ^= (a); (a) ^= (b); } while(0)
  4.  
  5. template<typename T> void myswap2(T &a, T &b) {
  6. a = a ^ b;
  7. b = a ^ b;
  8. a = a ^ b;
  9. }
  10.  
  11. int main() {
  12. int a = 3, b = 5;
  13. std::cout << "a = " << a << ", b = " << b << std::endl;
  14. myswap(a, b);
  15. std::cout << "a = " << a << ", b = " << b << std::endl;
  16. a = 4;
  17. std::cout << "a = " << a << std::endl;
  18. myswap(a, a);
  19. std::cout << "a = " << a << std::endl;
  20. return 0;
  21. }
  22. /* end */
  23.  
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
a = 3, b = 5
a = 5, b = 3
a = 4
a = 0