typename用法

typename的两种用法:

1)关键字typename被用来做为型别之前的标识符号,这也是它最特殊的一点:

template <class T>

class MyClass

  typename T::size_type value_type;

  ...

};

这里typename指出size_type是类T中定义的一个型别(如size_type是类T中存在的另外int型),因此该语句是将value_type声明为T::size_type的别名;如果没有typename关键字,size_type会被当成一个static成员。

2)上述中的template<class T>中的class 可以换成typename,在这方面class与typename是完全等价的。

原文地址:https://www.cnblogs.com/wickedboy237/p/3019882.html