Through emi(extended friend) em(declarations), which are also available for
class templates, template type parameters can be declared as friends. A
template type argument, however, does not necessarily have to be a type for
which the keyword tt(friend) makes sense, like tt(int). In those cases the
friend declaration is simply ignored.

Consider the following class template, declaring tt(Friend) as a friend:
        verb(    template <typename Friend>
    class Class
    {
        friend Friend;
        void msg();             // private, displays some message
    };)

Now, an actual tt(Friend) class may access all of tt(Class)'s members
        verb(    class Concrete
    {
        Class<Concrete> d_class;
        Class<std::string> d_string;

       public:
            void msg()
            {
                d_class.msg();    // OK: calls private Class<Concrete>::msg()
                //d_string.msg(); // fails to compile: msg() is private
            }
    };)

A declaration like tt(Class<int> intClass) is also OK, but here the friend
declaration is simply ignored. After all, there are no `int members' to access
tt(Class<int>)'s private members.
