#include template void varSwap(T& a, U& b) { T t; t = a; a = b; b = (U) t; } int main(int argc, char** argv) { using namespace std; double a = 1.1; double b = 2.2; varSwap(a,b); cout << a << "," << b << endl; int c = 1; int d = 2; varSwap(c,d); cout << c << "," << d << endl; long e = 3; int f = 4; varSwap(e,f); cout << e << "," << f << endl; }