编译器错误 C2600 - C2699

本文档部分提到的文章解释了编译器生成的一部分错误消息。

重要

Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修复程序可以解决多个后续错误。

若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。

注意

并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果登录此页面并认为错误或警告消息需要其他说明,请使用此页面上的反馈按钮告知我们。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择 帮助 > 发送反馈 > 报告问题,或使用 帮助 > 发送反馈 > 建议功能提交建议。 创建了一些编译程序错误主题,这些主题不是由编译程序发出的,但现在会重定向到此页面。

可以在 Microsoft Q&A C++ 论坛中找到有关错误和警告的其他帮助。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。

有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区

错误消息

错误 消息
编译器错误 C2600 “function”: 不能定义编译器生成的特殊成员函数(必须首先在类中声明)
编译器错误 C2601 “function”: 本地函数定义非法
编译器错误 C2602 class::标识符”不是“class”的基类成员。
编译器错误 C2603 function”: 函数中带有构造函数/析构函数的块级作用域静态对象太多
编译器错误 C2604 “identifier”: 无法实现多个接口方法
编译器错误 C2605 “identifier”: 此方法是托管/WinRT 类中的保留方法
编译器错误 C2606 class1”无法重新实现“member”,因为它从运行时基类“class2”继承而来。
编译器错误 C2607 静态断言失败
编译器错误 C2608 宏参数列表中包含无效令牌“token
编译器错误 C2609 宏参数列表中缺少“)”
编译器错误 C2610 class::member”: 不是可以被默认化的特殊成员函数
编译器错误 C2611 “token”:“~”后面包含非法字符(需要标识符)
编译器错误 C2612 基/成员初始化表达式列表中包含非法的尾部“character”
编译器错误 C2613 基类列表中包含非法的尾部“character”
编译器错误 C2614 class”: 非法的成员初始化: “identifier” 不是基类或成员
编译器错误 C2615 offsetof”不能应用于非类类型“类型
编译器错误 C2616 “conversion”: 无法隐式将非左值“type1”转换为非常量的“type2”
编译器错误 C2617 “function”: return 语句不一致
编译器错误 C2618 offsetof 中包含无效成员指示符
编译器错误 C2619 identifier”:匿名结构/联合中不允许使用静态数据成员。
编译器错误 C2620 已过时。
编译器错误 C2621 已过时。
编译器错误 C2622 已过时。
编译器错误 C2623 已过时。
编译器错误 C2624 scope::type”:局部类不能用于声明“extern”变量
编译器错误 C2625 “identifier”: 非法的联合成员;类型“type”是引用类型
编译器错误 C2626 “identifier”: 匿名结构/联合中不允许使用专用/受保护的数据成员
编译器错误 C2627 “function”: 匿名联合中不允许有成员函数
编译器错误 C2628 type1”后接“type2”是非法的(你是否忘记了“;”?)
编译器错误 C2629 identifier:匿名结构/联合不能声明嵌套类型
编译器错误 C2630 在应是逗号分隔列表的位置找到了“symbol”
编译器错误 C2631 “identifier”: 别名模板中不能定义类或枚举
编译器错误 C2632 type1”后面跟着“type2”是非法的
编译器错误 C2633 “identifier”:“inline”是构造函数的唯一合法存储类
编译器错误 C2634 “class::member”: 指向引用成员的指针是非法的
编译器错误 C2635 不能将“type1*”转换为“type2*”;这暗示了从虚拟基类进行转换。
编译器错误 C2636 “identifier”: 指向引用成员的指针是非法的
编译器错误 C2637 identifier”: 不能修改指向数据成员的指针
编译器错误 C2638 "identifier": 指向成员的指针上的 __based 修饰符非法
编译器错误 C2639 推导指引的尾随返回类型“type”应是“class template”的特殊化
编译器错误 C2640 “abstract declarator”:引用上的 __based 修饰符非法
编译器错误 C2641 无法推断 '模板名称' 的模板参数
编译器错误 C2642 同一类模板的两个推导指南声明不能具有等效的参数列表和模板头
编译器错误 C2643 推导指南应在与相应的类模板“模板名称”相同的范围内声明
编译器错误 C2644 推导指南应具有与相应类模板“模板名称”相同的访问权限
编译器错误 C2645 指向成员的指针没有限定名(找到“:: *”)
编译器错误 C2646 全局或命名空间范围的匿名结构体/共用体必须声明为静态
编译器错误 C2647 “operator”: 无法在“type2”上取消引用“type1”
编译器错误 C2648 “identifier”: 将成员用作默认参数需要静态成员
编译器错误 C2649 “identifier”: 不是“class/struct/union”
编译器错误 C2650 “operator”: 不能是虚拟函数
编译器错误 C2651 type:'::'的左边必须是类、结构或联合体
编译器错误 C2652 “identifier”: 非法复制构造函数: 第一个参数不得为“type”
编译器错误 C2653 identifier”: 不是类或命名空间名称
编译器错误 C2654 “identifier”: 尝试访问成员函数外部的成员
编译器错误 C2655 “identifier”: 当前范围内的定义或重新声明非法
编译器错误 C2656 “function”: 函数不能作为位域
编译器错误 C2657 在语句的开头找到“class::*”(是否忘记指定类型?)
编译器错误 C2658 “identifier”: 匿名结构/联合中的重定义
编译器错误 C2659 “operator”: 函数用作左操作数
编译器错误 C2660 “function”: 函数不采用 number 参数
编译器错误 C2661 “function”: 没有重载函数采用 number 参数
编译器错误 C2662 『function』:无法将“this”指针从『type1』转换为『type2』
编译器错误 C2663 function”:没有重载函数对“this”指针进行有效的转换
编译器错误 C2664 function”: 无法将参数number从“type1”转换为“type2
编译器错误 C2665 function”:没有重载函数可以转换所有参数类型
编译器错误 C2666 function”:重载函数具有类似的转换
编译器错误 C2667 function”:没有哪个重载函数具有最佳转换效果
编译器错误 C2668 “function”: 对重载函数的调用不明确
编译器错误 C2669 匿名联合中不能使用成员函数
编译器错误 C2670 “function”: 函数模板无法从类型“type”转换参数 number
编译器错误 C2671 function: 静态成员函数没有“this”指针
编译器错误 C2672 “function”: 未找到匹配的重载函数
编译器错误 C2673 function: 全局函数没有 “this” 指针
编译器错误 C2674 在此上下文中不允许出现泛型声明
编译器错误 C2675 一元“operator”:“type”不定义该运算符或到预定义运算符可接收类型的转换
编译器错误 C2676 二元“operator”:“type”不定义该运算符或到预定义运算符可接收类型的转换
编译器错误 C2677 二元运算符 'operator': 找不到接受 'type' 类型的全局运算符(或不存在可接受的转换)
编译器错误 C2678 二元运算符:未找到需要左侧操作数为类型type的运算符(或者没有可接受的转换)
编译器错误 C2679 二元“operator”: 未找到采用“type”类型右侧操作数的运算符(或者没有可接受的转换)
编译器错误 C2680 “type”: cast 的目标类型无效
编译器错误 C2681 “type”: cast 的表达式类型无效
编译器错误 C2682 无法使用“cast”将“type1”转换为“type2
编译器错误 C2683 “cast”:“type”不是多态类型
编译器错误 C2684 “declarator”: 托管/WinRT 类中不支持删除的和默认的函数
编译器错误 C2685 “declarator”: 显式限制说明符不支持删除的和默认的函数
编译器错误 C2686 不能重载具有相同参数类型的静态和非静态成员函数
编译器错误 C2687 “type”: 异常声明不能为“void”,也不能表示不完整类型或指向不完整类型的指针或引用
编译器错误 C2688 “type::member”: 协变返回不支持用于 varargs 函数的多重或虚拟继承
编译器错误 C2689 function」:不能在局部类中定义友元函数
编译器错误 C2690 “operator”: 不能对托管/WinRT 数组执行指针算术
编译器错误 C2691 “type”: 托管/WinRT 数组元素不能有此元素类型
编译器错误 C2692 “function”:“/clr”选项要求 C 编译器中完全保持原型的函数
编译器错误 C2693 “operator”: 比较托管/WinRT 数组的引用是非法的
编译器错误 C2694 “override_function”: 重写虚拟函数的限制性异常规范比基类虚成员函数“base_function”少
编译器错误 C2695 “override_function”: 重写虚拟函数只是在调用约定方面不同于于“base_function”
编译器错误 C2696 无法创建托管/WinRT 类型“type”的临时对象
编译器错误 C2697 已过时。
编译器错误 C2698 “declaration1”的使用声明不能与“declaration2”的现有使用声明同时存在。

另请参阅

C/C++ 编译器和生成工具错误与警告
编译器错误 C2000 - C3999、C7000 - C7999