版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LZUwujiajun/article/details/82666191
typedef typename std::vector<T>::size_type size_type;
初次读这句话的时候很难理解,仔细回味了一下,其实是这个意思:
size_type
是在vector
类中如此定义的typedef size_t size_type;
,相当于size_t
和size_type
是等价的,在vector
未被加载的时候,程序并不知道size_type
是个什么东西,有可能是静态数据成员,静态成员函数,或者是嵌套类型,使用typename
指定后消除了歧义。
C++ Primer P593
C++语言默认情况下,假定通过作用域运算符访问的名字不是类型,所以当我们要访问的是类型时候,必须显示的告诉编译器这是一个类型,通过关键字typename
来实现这一点