【C++报错】不是“std::iterator_traits<_Iter>”基类的成员
来源:互联网 发布:幸福 哲学书 知乎 编辑:程序博客网 时间:2024/06/06 00:17
今天帮别人调一个错,遇到了下面的报错信息
error C2602: “std::iterator_traits<_Iter>::iterator_category”不是“std::iterator_traits<_Iter>”基类的成员
with
[
_Iter=std::string
]
d:\vs2010\vc\include\xutility(373) : 参见“std::iterator_traits<_Iter>::iterator_category”的声明
with
[
_Iter=std::string
]
d:\vs2010\vc\include\xutility(373): error C2868: “std::iterator_traits<_Iter>::iterator_category”: 非法的 using 声明语法;应输入限定名
with
[
_Iter=std::string
]
看见有出现iterator第一反应想起的是STL,虽然不知道跟其有没有关系。顺着这样想,发现语法什么的都没有写错,究竟是什么问题呢?
看见错误光标停留了在某一处函数名上面,函数名是next··突然想起这个会不会跟库函数里面的函数名冲突了。想一想,next这个作为迭代器里面的一个方法很有可能是这个原因。
把next改为Next,果然编译就通过了。
结论:写C++代码的时候要注意,函数名不能跟已经有的库函数里面的方法冲突(除非在namespace那里做些处理?我个人觉得,但是还未完全真正深入了解过,有一段时间按没写C++了)
- 【C++报错】不是“std::iterator_traits<_Iter>”基类的成员
- error C2039: “sort”: 不是“std”的成员
- “max”: 不是“std”的成员 问题
- C2039“mem_fun”: 不是“std”的成员
- “vector”: 不是“std”的成员 问题解决
- “max”: 不是“std”的成员 如何解决?
- VS2013 max 不是 std 成员
- vs2008 error C2039: “shared_ptr”: 不是“std::tr1”的成员
- vs2008 error C2039: “shared_ptr”: 不是“std::tr1”的成员
- error C2039: “_Alty” : 不是“std::_Vector_val<_Ty,_Alloc>”的成员
- error C2039: “string”: 不是“std”的成员解决方案
- error C2039: “function”: 不是“std::tr1”的成员
- _iter的一段程序
- regex is not a member of std—regex 不是std 的成员
- 类std::iterator的类型成员
- vs2013编译g3dlite时出现 min不是std的成员 mangos
- iterator_traits
- Iterator_traits
- VS2008启动调试加载进程卡死
- 高性能服务总结
- 角色技能攻击范围点区域显示
- 终于到了今天
- 剪格子
- 【C++报错】不是“std::iterator_traits<_Iter>”基类的成员
- Canopy聚类算法(经典,看图就明白)
- SQL查找和删除重复行
- Linux权限
- 怎么上facebook、youtube、twitter? 图文教程。
- Mongodb数据库mac下安装、启动、停止
- RoadRunner性能测试软件的介绍
- hiberante和jdbc的比较
- 设计模式之动态代理