例子: for (image_list_type::iterator _iteratorForDeal = inputImage.begin();_iteratorForDeal<inputImage.end();_iteratorForDeal++)
error C2678: 二进制“<”: 没有找到接受“std::list<_Ty>::_Iterator<_Secure_validation>”类型的左操作数的运算符(或没有可接受的转换)
1> with1> [
1> _Ty=gosuncn::VQD::image_type *,
1> _Secure_validation=true
1> ]
1> e:\项目开发\视频质量诊断算法研发\视频质量诊断源码算法开发\videoqualitydiagnose\includes\opencv2\core\operations.hpp(2827): 可能是“bool cv::operator <(const cv::FileNodeIterator &,const cv::FileNodeIterator &)”
1> e:\项目开发\视频质量诊断算法研发\视频质量诊断源码算法开发\videoqualitydiagnose\includes\opencv2\core\mat.hpp(1203): 或 “cv::MatExpr cv::operator <(const cv::Mat &,const cv::Mat &)”
1> e:\项目开发\视频质量诊断算法研发\视频质量诊断源码算法开发\videoqualitydiagnose\includes\opencv2\core\mat.hpp(1204): 或 “cv::MatExpr cv::operator <(const cv::Mat &,double)”
1> e:\项目开发\视频质量诊断算法研发\视频质量诊断源码算法开发\videoqualitydiagnose\includes\opencv2\core\mat.hpp(1205): 或 “cv::MatExpr cv::operator <(double,const cv::Mat &)”
1> e:\项目开发\视频质量诊断算法研发\视频质量诊断源码算法开发\videoqualitydiagnose\includes\opencv2\core\mat.hpp(1848): 或 “bool cv::operator <(const cv::MatConstIterator &,const cv::MatConstIterator &)”
1> 试图匹配参数列表“(std::list<_Ty>::_Iterator<_Secure_validation>, std::list<_Ty>::_Iterator<_Secure_validation>)”时
1> with
1> [
1> _Ty=gosuncn::VQD::image_type *,
1> _Secure_validation=true
1> ]
分析:这种错误主要看运算符的错误,也就是没有找到重载操作符,语法解析为可能”operator <“ 种类型,也就是操作符问题为“<”,只是解析到bool cv::或cv::MatExpr cv::中了,再看代码,可知是_iteratorForDeal<inputImage.end()出问题,就是“<”使用不当,没有重载这种操作符,应该为!=。