SWAP
#define SWAP(x, y) { \
#define SWAP(a, b, count, size, tmp) { \
#define SWAP(x,y) do { \
#define SWAP \
#define SWAP(x, y) { \
#define SWAP(type, a1, a2) \
#define SWAP(fld) tmp = cur.fld; \
#undef SWAP
#define SWAP(type, a, b) {type c=(type)a; a=(type)b; b=(type)c;}
#undef SWAP