Обмен значением переменной методом XOR

Классическая микро-задача в программировании поменять значение переменных местами.

Вот первый попавшийся метод что приходит в голову

classic-method.c
void swap(int x, int y) {
    int t = x;
    x = y;
    y = t;
}

А вот шикарное решение для исполнения.

xor-method.c
void swap(int x, int y) {
    (x ^= y), (y ^= x), (x ^= y);
}