C++语言默认情况下,假定通过作用域运算符访问的名字不是类型,所以当我们要访问的是类型时候,必须显示的告诉编译器这是一个类型,通过关键字typename来实现这一点。
typedef typename std::vector<A>::iterator iterator;
typedef typename std::vector<A>::const_iterator const_iterator;
typedef typename std::vector<A>::reference reference;
typedef typename std::vector<A>::const_reference const_reference;
语句的真是面目是: typedef创建了存在类型的别名,而typename告诉编译器std::vector<A>::size_type是一个类型而不是一个成员。

1万+

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



