#include template ::value, T> = 0> void swap(T &x, T &y) { x += y; y = x - y; x -= y; } int main() { char x = '['; char y = 'w'; swap(x, y); std::cout << "x = " << x << ", y = " << y; return 0; }