It could help in generic macros, like this:
#define SWAP(var1, var2) do { \
auto tmp = var1; \
var1 = var2; \
var2 = tmp; \
} while (0)
Previously, you would have needed a third macro for the type, or you would have needed to do a byteswap to be generic.