template <typename T> class Blob {
public:
typedef T value_type;
typedef typename std::vector<T>::size_type size_type;
//我搞不懂这里的typename是干嘛的,怎么看都像是多余的,请解释
// constructors
Blob();
。。。
};
如果没有typename关键字, 编译器分不清size_type
是std::vector<T>
的成员还是其他东西. 比如std::vector<T>
如果有一个size_type的静态成员.