The declaration of the members of a class includes the declaration of the class together with a list of all class members and member functions. A class declaration terminates with a semi-colon.
class ClassName {
// ...
};
If a class has a template modifier, it appears before the class:
template <typename T>
class ClassName {
// ...
};
All references to the class after this point must either explicitly include the template or must have a type substituted for the templated variable. For example, the following is a function declaration using the templated class name:
template <typename T> void f( ClassName<T> );