<分区>
根据 this question , typename
应该被添加来告诉编译器 iterator
是一个类型(是否正确?),例如
template <typename T>
void print(vector<T> &v) {
for (typename vector<T>::const_iterator it=v.begin(); it!=v.end(); ++it)
cout<<*it<<endl;
}
两个问题:
什么情况下应该加
typename
?谁能再举一个例子?C++11 中的
auto
能否替换所有这些typename xxx
情况?