【发布时间】:2016-10-04 07:47:05
【问题描述】:
我正在尝试重载运算符
error: 'e' is not a class, namespace, or enumeration
这是我的代码:
#include <iostream>
#include <vector>
template<typename T>
std::ostream& operator<<(std::ostream &out, T const &e){
for(e::iterator it = e.begin(); it != e.end(); it = it + 2){
out << *it << " ";
}
return out;
}
int main(){
std::vector<int> v;
for(int i= 0; i < 10; i++){
v.push_back(i);
}
std::cout << v;
return 0;
}
【问题讨论】:
-
用
T::iterator替换e::iterator -
使用
auto &&it
标签: c++ templates stl iterator