今天运行程序的时候遇到了下面这个bug

1>  B1020.cpp
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371): error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(584): 参见对正在编译的类 模板 实例化“std::iterator_traits<_InIt>”的引用
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\algorithm(3155): 参见对正在编译的函数 模板 实例化“void std::_Debug_range<_RanIt>(_InIt,_InIt,std::_Dbfile_t,std::_Dbline_t)”的引用
1>          with
1>          [
1>              _RanIt=int
1>  ,            _InIt=int
1>          ]
1>          e:\c++\common\algorithmnote\algorithmnote\b1020.cpp(48): 参见对正在编译的函数 模板 实例化“void std::sort<int,bool(__cdecl *)(mooncake,mooncake)>(_RanIt,_RanIt,_Pr)”的引用
1>          with
1>          [
1>              _RanIt=int
1>  ,            _Pr=bool (__cdecl *)(mooncake,mooncake)
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371): error C2039: “iterator_category”: 不是“`global namespace'”的成员
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371): error C2146: 语法错误: 缺少“;”(在标识符“iterator_category”的前面)
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371): error C2602: “std::iterator_traits<_InIt>::iterator_category”不是“std::iterator_traits<_InIt>”基类的成员
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371) : 参见“std::iterator_traits<_InIt>::iterator_category”的声明
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371): error C2868: “std::iterator_traits<_InIt>::iterator_category”: 非法的 using 声明语法;应输入限定名
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(372): error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(372): error C2039: “value_type”: 不是“`global namespace'”的成员
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(372): error C2146: 语法错误: 缺少“;”(在标识符“value_type”的前面)
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(372): error C2602: “std::iterator_traits<_InIt>::value_type”不是“std::iterator_traits<_InIt>”基类的成员
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(372) : 参见“std::iterator_traits<_InIt>::value_type”的声明
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(372): error C2868: “std::iterator_traits<_InIt>::value_type”: 非法的 using 声明语法;应输入限定名
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(373): error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(373): error C2039: “difference_type”: 不是“`global namespace'”的成员
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(373): error C2146: 语法错误: 缺少“;”(在标识符“difference_type”的前面)
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(373): error C2602: “std::iterator_traits<_InIt>::difference_type”不是“std::iterator_traits<_InIt>”基类的成员
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(373) : 参见“std::iterator_traits<_InIt>::difference_type”的声明
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(373): error C2868: “std::iterator_traits<_InIt>::difference_type”: 非法的 using 声明语法;应输入限定名
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(375): error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(375): error C2039: “pointer”: 不是“`global namespace'”的成员
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(375): error C2146: 语法错误: 缺少“;”(在标识符“pointer”的前面)
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(375): error C2602: “std::iterator_traits<_InIt>::pointer”不是“std::iterator_traits<_InIt>”基类的成员
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(375) : 参见“std::iterator_traits<_InIt>::pointer”的声明
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(375): error C2868: “std::iterator_traits<_InIt>::pointer”: 非法的 using 声明语法;应输入限定名
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(376): error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(376): error C2039: “reference”: 不是“`global namespace'”的成员
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(376): error C2146: 语法错误: 缺少“;”(在标识符“reference”的前面)
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(376): error C2602: “std::iterator_traits<_InIt>::reference”不是“std::iterator_traits<_InIt>”基类的成员
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(376) : 参见“std::iterator_traits<_InIt>::reference”的声明
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(376): error C2868: “std::iterator_traits<_InIt>::reference”: 非法的 using 声明语法;应输入限定名
1>          with
1>          [
1>              _InIt=int
1>          ]
1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(584): error C2665: “std::_Debug_range2”: 2 个重载中没有一个可以转换所有参数类型
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(567): 可能是“void std::_Debug_range2<_InIt>(_RanIt,_RanIt,std::_Dbfile_t,std::_Dbline_t,std::random_access_iterator_tag)”
1>          with
1>          [
1>              _InIt=int
1>  ,            _RanIt=int
1>          ]
1>          e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(559): 或       “void std::_Debug_range2<_InIt>(_InIt,_InIt,std::_Dbfile_t,std::_Dbline_t,std::input_iterator_tag)”
1>          with
1>          [
1>              _InIt=int
1>          ]
1>          尝试匹配参数列表“(int, int, std::_Dbfile_t, std::_Dbline_t, int)”时

  首先看到这么多的错误信息就头大,看都不想看,所以我没仔细看这些错误信息,就直接把错误信息的第一行复制到浏览器中去找解决办法,找了挺久时间,确实看到了类似的错误信息,但是跟我也不完全一样,最后看到网上说出现这种情况的原因可能是参数错误或者自定义函数名和库函数名冲突,函数名冲突这个可以排除,因为我确保函数名没有冲突,所以就定位在了参数错误,最后发现 sort 函数的前两个参数必须是迭代器或指针,但是我写了两个整型,所以报错。

  出错的位置

1 // 排序
2 // sort(cakes, cakes + N, cmp);        // 正确写法
3 // sort(0, N, cmp);                    // 错误写法

  查到的sort函数声明

template <class RandomAccessIterator, class Compare>void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);

  总结:回过头来仔细看看错误信息,发现确实有一点可以看懂的提示,就是我标红的那段,所有提示中出现的函数名中只有这个sort函数名是我见过的,说明其他的都是库函数,说明错误一定是这个sort函数的调用错误,而且貌似标红的错误信息中还提示了参数不匹配的信息,但是由于对冗长错误信息的恐惧感,促使我一开始选择跳过这些错误提示,如果早一点看到这个信息,可以省很多时间,所以告诉自己以后如果再碰到这种又臭又长又看不懂的错误信息时,第一时间不要跳过这些提示,应该从中找到自己认识的部分,很可能错误就出在那里。

error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间 -- 原因可能是参数错误或者自定义函数名和库函数名冲突...相关推荐

  1. 完美解决VS2003.Net fatal error LNK1201: 写入程序数据库“.pdb”时出错 - 细雨淅淅

    注意:这里说的方案不适用于coco2d-x 3.0 STL 工程,把调试信息数据库设成非"C7兼容"的情绪. http://www.tuicool.com/articles/uYZ ...

  2. 05-----关于C++使用VS时出现 error C2248: “xxx“ 无法访问private成员(在“MySpdlog“类中声明)

    一 问题描述 项目中遇到一下问题,需要写个测试程序,但是在搭建的过程中,出现错误的,心想,代码一样的,怎么就报错了呢.于是开始查找问题. 错误如下: 因为我的测试程序文件不算多,就5个,代码也不多,于 ...

  3. mysql语法错误文件_使用logstash同步MySQL的数据时,在jdbc查询sql文件时报sql语法错误,sql文件是navicat生成的...

    使用logstash同步MySQL的数据时,在jdbc查询sql文件时报sql语法错误,并且错误总是near在第1行,sql文件的编码是utf8mb64 ,不知道是否是编码问题 logstash配置j ...

  4. 友盟分享error:包名错误,确认与开放平台包名一致

    分享一下在集成友盟分享时一个坑(RN) 关于集成友盟分享的方法我就不多说,跟着文档solo完全ok 说一下我在Android点击分享时候,正常弹出分享borad,选择对应平台分享时候 一如既往的loa ...

  5. SQL Server 异常 COM 类公司中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80070005

    [Error] COM 类公司中CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80070005 [Solution] ...

  6. Flash与Javascript交互时可用ExternalInterface类

    Flash与Javascript交互时可用ExternalInterface类 ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player ...

  7. 解决Office互操作错误检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005...

    Excel为例(其他如Word也适用)文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是 ...

  8. ad hoc是什么的简称_签名后的App安装时出现安装失败是什么原因?如何解决?

    相信了解过ios签名的朋友都知道,ios签名可以对App添加信任,使其能够绕过App Store的审核直接安装到ios设备上.但是有时我们在使用过程中会发现,签名后的App在安装时会出现安装失败的情况 ...

  9. Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE

    Python使用numpy包编写自定义函数计算平均绝对误差(MAE.Mean Absolute Error).评估回归模型和时间序列模型.解读MAE 目录

  10. Python使用numpy包编写自定义函数计算均方误差(MSE、mean squared error)、评估回归模型和时间序列模型、解读MSE评估指标

    Python使用numpy包编写自定义函数计算均方误差(MSE.mean squared error).评估回归模型和时间序列模型.解读MSE评估指标 目录

最新文章

  1. el表达式 if 和 if else 的写法
  2. 下面选项能正确表示JAVA_模拟试题2
  3. 解决 : Shell 脚本 $‘\r‘: command not found 问题
  4. 技校毕业是什么学历_初中毕业上技校学什么专业好
  5. CI学习 – header和footer
  6. 佛大计算机控制系统期末试卷,[设计]统考计算机模拟练习试题及答案基础知识...
  7. postgresql mysql数据类型_postgresql+java数据类型对照
  8. android电视文件管理器,2018电视文件管理器排行榜(最新)
  9. 解决Perhaps JAVA_HOME does not point to the JDK.
  10. Rust LLDB 调试入门指北
  11. STM32F412 can测试问题汇总
  12. 面试经历---YY欢聚时代
  13. Eclipse Neno.3 + Jrebel 7.0.9 图文在线安装
  14. python爬虫可视化web展示_python爬虫可视化——小龙虾
  15. zxing换行_为什么我的word里的横线上写完一行字不能自动换行,?
  16. 使用Windows任务计划自动运行Python程序
  17. Vuforia AR开发详细教程
  18. 忘记保存,如何利用历史版本找回丢失的Word文件
  19. 无线衰落信道的分类方式和选择性衰落条件
  20. 用python画枫叶-python-函数及练习

热门文章

  1. 渠道对账及差错处理系统设计
  2. linux驱动面试题2018(面试题整理,含答案)
  3. 硬笔书法三要素:笔法、结构和章法
  4. 小米智能音箱使用体验:大树底下好乘凉
  5. python 3des加密_python3使用3des加密
  6. Android 最常用的设计模式一 安卓源码分析—单例模式singleInstance
  7. apkg格式怎么打开_PDF文件怎么压缩?这里有几个小技巧~
  8. Python使用pyodbc访问数据库操作方法详解
  9. while在Java用法_Java中while循环用法
  10. JTT 808-2019 道路运输车辆卫星定位系统 终端通讯协议及数据格式.PDF