编译器错误 C2700 - C2799

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

重要

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

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

注意

并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果在使用 F1 时登陆此页,并且认为错误或警告消息需要额外的解释,请告诉我们。 可以使用此页面上的反馈按钮在 GitHub 上提出文档问题。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择“帮助”>“发送反馈”>“报告问题”,或者使用“帮助”>“发送反馈”>“发送建议”提交建议

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

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

错误消息

错误 消息
编译器错误 C2700 “type”: 无法引发(有关详细信息,请使用 /W4)
编译器错误 C2701 “function”: 函数模板/泛型不能是局部类的友元
编译器错误 C2702 __except 可能不在终止块中出现
编译器错误 C2703 非法的 __leave 语句
编译器错误 C2704 “function”: __va_start 内部函数只能在 varargs 中
编译器错误 C2705 “label”: 非法跳转到“exception_block”范围
编译器错误 C2706 没有匹配 __try 的非法 __except(__try 块中是否缺少“}”?)
编译器错误 C2707 “identifier”: 内部函数的上下文错误
编译器错误 C2708 “identifier”: 实参的字节长度不同于以前的调用或引用
编译器错误 C2709 “identifier”: 形参的字节长度不同于以前的声明
编译器错误 C2710 “construct”:“__declspec(modifier)”只能应用于返回指针的函数
编译器错误 C2711 "function": 此函数不能编译为托管,请考虑使用 #pragma 非托管
编译器错误 C2712 无法在要求对象展开的函数中使用 __try
编译器错误 C2713 每个函数只允许一种异常处理方式
编译器错误 C2714 不允许使用“alignof(void)
编译器错误 C2715 “type”: 无法引发或捕捉此类型
编译器错误 C2716 已过时。
编译器错误 C2717 已过时。
编译器错误 C2718 “type”: 要求 number 对齐的实参将不被对齐
编译器错误 C2719 “parameter”: 要求 number 对齐的形参将不被对齐
编译器错误 C2720 “identifier”: 成员上的“specifier”存储类说明符非法
编译器错误 C2721 “specifier”: 运算符关键字和类型之间的存储类说明符非法
编译器错误 C2722 “::operator”: 后面的运算符命令非法;使用“operator operator”
编译器错误 C2723 “function”: “specifier”说明符在函数定义上非法
编译器错误 C2724 “function”:“static”不应在文件范围内定义的成员函数上使用
编译器错误 C2725 “type”: 无法通过值或引用引发或捕获托管/WinRT 对象
编译器错误 C2726 “gcnew”只能用于创建具有托管/WinRT 类型的对象
编译器错误 C2727 已过时。
编译器错误 C2728 “type”: 本机数组不能包含此类型
编译器错误 C2729 已过时。
编译器错误 C2730 “class”: 不能是自身的基类
编译器错误 C2731 “function”: 无法重载函数
编译器错误 C2732 链接规范与“function”的早期规范冲突
编译器错误 C2733 “function”: 不允许重载函数的第二个 C 链接
编译器错误 C2734 “identifier”: 如果不是“extern”,则必须初始化“const”对象
编译器错误 C2735 不允许在形参类型说明符中使用“keyword”关键字
编译器错误 C2736 不允许在强制转换中使用“keyword”关键字
编译器错误 C2737 “identifier”: 必须初始化 const/constexpr 对象
编译器错误 C2738 “operator type”: 不明确或者不是“class”的成员
编译器错误 C2739 “number”: 显式托管/WinRT 数组维度必须介于 1 和 32 之间
编译器错误 C2740 操作数“number”的值不在“lower_bound - upper_bound”范围中
编译器错误 C2741 帧大小太大
编译器错误 C2742 已过时。
编译器错误 C2743 “type”: 无法使用 __clrcall 析构函数或复制构造函数捕捉本机类型
编译器错误 C2744 “operator”不是有效的 CLR/WinRT 运算符
编译器错误 C2745 “token”: 此标记不能转换为标识符
编译器错误 C2746 已过时。
编译器错误 C2747 已过时。
编译器错误 C2748 创建托管/WinRT 数组时必须提供数组大小或数组初始值设定项
编译器错误 C2749 “type”: 使用 /clr:safe 只能引发或捕获托管类的句柄
编译器错误 C2750 “type”: 不能对引用类型使用“new”;请改用“gcnew”
编译器错误 C2751 “parameter”: 无法限定函数参数的名称
编译器错误 C2752 “template”: 多个部分专用化与模板参数列表匹配
编译器错误 C2753 “template”: 部分专用化无法匹配主模板的参数列表
编译器错误 C2754 “template”: 部分专用化不能有依赖的非类型模板参数
编译器错误 C2755 “parameter”: 部分专用化的非类型参数必须是简单标识符
编译器错误 C2756 “template”: 部分专用化中不允许有默认模板参数
编译器错误 C2757 “identifier”: 具有该名称的符号已存在,因此该名称不能用作命名空间名称
编译器错误 C2758 “member”: 必须初始化引用类型的成员
编译器错误 C2759 内联汇编程序报告: error_message
编译器错误 C2760 语法错误:应为“token1”而不是“token2”
编译器错误 C2761 “function”: 不允许重新声明成员函数
编译器错误 C2762 “template”: 作为“parameter”的模板参数的表达式无效
编译器错误 C2763 “template”: 使用字符串作为“parameter”的模板参数无效
编译器错误 C2764 “parameter”: 在部分专用化“specialization”中未使用或可推导出的模板参数
编译器错误 C2765 “function”: 函数模板的显式专用化不能有任何默认参数
编译器错误 C2766 显式专用化;“specialization”已定义
编译器错误 C2767 托管/WinRT 数组维度不匹配: 需要 number 个参数 - 提供了 number 个
编译器错误 C2768 “function”: 非法使用显式模板参数
编译器错误 C2769 无法用大括号初始化基/成员初始化表达式列表中的托管/WinRT 数组
编译器错误 C2770 “template”的显式模板/泛型参数无效
编译器错误 C2771 #import 只能在全局或命名空间范围内使用
编译器错误 C2772 已过时。
编译器错误 C2773 #import 和 #using 只在 C++ 编译器中可用
编译器错误 C2774 “identifier”: 没有“put”方法与该属性关联
编译器错误 C2775 “identifier”: 没有“get”方法与该属性关联
编译器错误 C2776 每个属性只能指定一个“get”方法
编译器错误 C2777 每个属性只能指定一个“put”方法
编译器错误 C2778 __declspec(uuid()) 中的 GUID 格式不正确
编译器错误 C2779 “declaration”: 属性方法只能与非静态数据成员关联
编译器错误 C2780 “declaration”: 需要 number 个参数 - 提供了 number 个
编译器错误 C2781 “declaration”: 至少需要 number 个参数 - 提供了 number 个
编译器错误 C2782 “declaration”: 模板/泛型参数“parameter”不明确
编译器错误 C2783 “declaration”: 无法推导“identifier”的模板/泛型参数
编译器错误 C2784 “declaration”: 无法从“type2”推导“type1”的模板/泛型参数
编译器错误 C2785 “declaration1”和“declaration2”具有不同的返回类型
编译器错误 C2786 “type”: __uuidof 的操作数无效
编译器错误 C2787 “identifier”: 没有与该对象关联的 GUID
编译器错误 C2788 “identifier”: 与此对象关联了多个 GUID
编译器错误 C2789 “identifier”: 必须初始化常量限定类型的对象
编译器错误 C2790 “super”: 该关键字只能在类成员函数体的内部使用
编译器错误 C2791 非法使用“super”:“class”没有任何基类
编译器错误 C2792 “super”:该关键字的后面必须跟“::”
编译器错误 C2793 “token”:“::”的后面有意外标记,应输入标识符或关键字“operator”
编译器错误 C2794 “identifier”: 不是“class”的任何直接或间接基类的成员
编译器错误 C2795 “super::identifier”不是成员函数
编译器错误 C2796 “ref new”只能用于创建 WinRT 类型的实例
编译器错误 C2797 (已过时)“identifier”: 未实现成员初始化表达式列表或非静态数据成员初始化表达式内的列表初始化
编译器错误 C2798 “super::identifier”不明确
编译器错误 C2799 “identifier”: 必须初始化没有用户提供的默认构造函数的常量限定类类型的对象

另请参阅

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