1.在类模板中使用与class完全一致,没有差别

templete <typename T>
templete <class T>
//上述二者完全一致

2.告诉 c++ 编译器,typename 后面的字符串为一个类型名称,而不是成员函数或者成员变量

//比如以下代码
template<typename T>
void fun(const T& proto) {

    T::const_iterator it(proto.begin());
}

编译器提示:

typename关键字_成员变量