typename 关键字的用法
1. 目的是 通知编译器, 被限定的那个 标识符 应该理解为 一个类型
如
template<class T, template<class u, class = allocator<u> > class Seq>
void printSeq(Seq<T>& seq)
{
for(typename seq<T>::iterator b = seq.begin(); b != seq.end(); b++)
cout<<(*b)<<endl;
}
这里seq<T>::iterator 就是一个类型
2 用typename 代替 class 更直观 更一目了然