Would I write a function or class that takes ints, and another just like it except it takes strings, and another just like it except it takes Ubergeeks? That doesn’t sound lazy! This chapter enables us to write it once, using templates.
Recall this function for swapping int
s, from Chapter 8
void swap (int& arg1, int& arg2)
int temp = arg2; arg2 = arg1; arg1 = temp;
That’s fine for int
, but what if I want doubles
s? Heffalumps? I don’t want to write new versions for every type I encounter! Here’s the fix.
template <typename T>
void swap (T& arg1, T& arg2)
T temp = arg2; ...