C++ doubt

Hello guys, I need to learn a few basics about C++ for friday… can anyone tell me what does this C++ macro accomplish: #define func(a, b) a ^= b ^= a ^= b?! thanks in advance!