Class Templates
We begin with the keyword template followed by the class
template's formal argument list within  angle brackets (<
>). This is followed by the class interface.
The template formal argument list consists of a comma
separated list containing the identifiers for each formal
argument in the list. There must be at least one formal
argument specified.
The scope of the formal arguments is that of the class
template itself.