C++ typedef typename 的作用

版权声明:本文为博主原创文章,未经博主允许不得转载。 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_tsize_type是等价的,在vector未被加载的时候,程序并不知道size_type是个什么东西,有可能是静态数据成员,静态成员函数,或者是嵌套类型,使用typename指定后消除了歧义。

C++ Primer P593
C++语言默认情况下,假定通过作用域运算符访问的名字不是类型,所以当我们要访问的是类型时候,必须显示的告诉编译器这是一个类型,通过关键字typename来实现这一点

猜你喜欢

转载自blog.csdn.net/LZUwujiajun/article/details/82666191