    When objects of a class template are instantiated, em(only) the
definitions of all the template's member functions that are actually used must
have been seen by the compiler.

    That characteristic of templates could be refined to the point where each
definition is stored in a separate function template definition file. In that
case only the definitions of the function templates that are actually needed
would have to be included. However, it is hardly ever done that way. Instead,
the usual way to define class templates is to define the interface and to
define the remaining function templates immediately below the class template's
interface (defining some functions inline).

    Now that the class tt(CirQue) has been defined, it can be used. To use the
class its object must be instantiated for a particular data type. In the
following example it is initialized for data type tt(std::string):
        verbinclude(-a examples/cirque.cc)
    This program produces the following output:
        verb(
    2 1 2
    3 3 5
    2 4 5
    5 1 9
        )
