typename指示一个类型名,而非定义一个类型,以下声明了一个Seq::iterator类型的变量itr,其中Seq是一个模板实例化时才知道的类:
typename Seq::iterator itr;
如果没有typename指示,Seq::iterator会被认为是Seq的静态变量,而不是类型名。
typename关键字不会定义一个类型,如果你想定义一个新类型的话,你必须这样:
typedef typename Seq::iterator ITR;
本文详细介绍了C++中typename关键字的用法及其重要性。通过具体示例解释了typename如何指示类型名而非定义类型,并展示了其在模板实例化中的正确使用方式。

被折叠的 条评论
为什么被折叠?