In a previous tip, I showed how to swap two variables without using a temporary variable. There’s another version of this solution that applies to integral values only. Here it is:
void swap(int& i, int& j){ i ^= j; j ^= i; i ^= j;}// i and j are swapped
You can apply this technique to any integral type, e.g., char, short, unsigned long, but not to floating-point variables.