编译器错误 C3500 - C3999

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

重要

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++ 帮助和社区

错误消息

错误 Message
编译器错误 C3500 ProgID“progid”无效
编译器错误 C3501 没有为 ProgID“progid”注册 typelib
编译器错误 C3502 无法获得 ProgID“progid”的 LIBID
编译器错误 C3503 原始字符串字面量中不允许使用字符“0xvalue
编译器错误 C3504 无法根据字符串“string”创建 GUID
编译器错误 C3505 无法加载类型库“library”
编译器错误 C3506 没有为 LIBID“library”注册 typelib
编译器错误 C3507 ProgID 不能有多于 39 个字符的“progid”;也不能包含除“.”外的任何标点;也不能以数字开头
编译器错误 C3508 “type”: 不是有效的自动化类型
编译器错误 C3509 “type”: 无效的自动化返回类型;参数标记为“retval”时,返回类型必须是“void”、“HRESULT”或“SCODE”
编译器错误 C3510 找不到依赖类型库 library_name
编译器错误 C3511 “identifier”: 对委托构造函数的调用应仅为成员初始值设定项
编译器错误 C3512 原始字符串字面量的分隔符序列不得超过 16 个字符
编译器错误 C3513 “string”: 不受支持的原始字符串字面量分隔符
编译器错误 C3514 “character”(value): 不受支持的原始字符串字面量分隔符
编译器错误 C3515 如果类模板部分专用化的参数是一个包扩展,则它应是最后一个参数
编译器错误 C3516 处理原始字符串字面量时发现意外的文件尾;分隔符序列“string”不匹配
编译器错误 C3517 “identifier”别名声明不能有包含“auto”的类型
编译器错误 C3518 “identifier”: 在直接列表初始化上下文中,“type”的类型只能从单个初始值设定项表达式推导出来
编译器错误 C3519 “parameter”: embedded_idl 属性的参数无效
编译器错误 C3520 “identifier”: 必须在此上下文中扩展参数包
编译器错误 C3521 “identifier”不是参数包
编译器错误 C3522 “type”: 无法在此上下文中扩展参数包
编译器错误 C3523 “sizeof...”需要一个未扩展的参数包作为其参数
编译器错误 C3524 “identifier”:“sizeof”不能应用于参数包。 你是否想使用“sizeof...”?
编译器错误 C3525 “parameter”: 如果类模板具有模板参数包,则它必须出现在模板参数列表的末尾
编译器错误 C3526 “...”无法应用于“this”
编译器错误 C3527 “identifier”不是“sizeof...”的有效操作数。 你是否想使用“sizeof”?
编译器错误 C3528 “identifier1”: 此包扩展中的元素数与“identifier2”中的元素数不匹配
编译器错误 C3529 “parameter”: 模板参数包不能含有默认参数
编译器错误 C3530 “type”不能与任何其他类型说明符组合
编译器错误 C3531 “identifier”: 类型包含“type”的符号必须具有初始值设定项
编译器错误 C3532 数组的元素类型不能是包含“type”的类型
编译器错误 C3533 参数不能有包含“type”的类型
编译器错误 C3534 已过时。
编译器错误 C3535 无法从“type2”推断“type1”的类型
编译器错误 C3536 “identifier”: 初始化之前无法使用
编译器错误 C3537 无法强制转换为包含“type”的类型
编译器错误 C3538 在声明符列表中,“type”必须始终推导为同一类型
编译器错误 C3539 模板参数不能为包含“type”的类型
编译器错误 C3540 不能将 sizeof 应用于包含“type”的类型
编译器错误 C3541 不能将 typeid 应用于包含“type”的类型
编译器错误 C3542 “identifier”: 虚拟成员函数不应具有含“type”的返回类型
编译器错误 C3543 “type”: 不包含参数包
编译器错误 C3544 “parameter”: 参数包需要一个类型模板参数
编译器错误 C3545 “parameter”: 参数包需要一个非类型模板参数
编译器错误 C3546 “...”: 没有可扩展的参数包
编译器错误 C3547 无法使用模板参数“parameter”,因为它跟随一个模板参数包,无法从“function”的函数参数推导出来
编译器错误 C3548 “identifier”: 无法在此上下文中使用参数包
编译器错误 C3549 “value”: 函数参数包不能具有默认参数
编译器错误 C3550 此上下文只允许纯“decltype(auto)”
编译器错误 C3551 如果使用尾随返回类型,则主要返回类型应该是单个类型说明符“auto”(而不是“type”)
编译器错误 C3552 应该为“decltype(auto)”
编译器错误 C3553 decltype 应为表达式而不是类型
编译器错误 C3554 “type”不能与任何其他类型说明符组合
编译器错误 C3555 “decltype”的参数不正确
编译器错误 C3556 “expression”:“decltype”的参数不正确
编译器错误 C3557 已过时。
编译器错误 C3558 已过时。
编译器错误 C3559 对“function”的递归调用: 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,检测到递归:“function
编译器错误 C3560 “function”: 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,IL 不可用:“function
编译器错误 C3561 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,在不是统一平铺的控制流中找到平铺屏障操作:“function
编译器错误 C3562 内部函数“function”已限制为不能使用 number 个以上的参数
编译器错误 C3563 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,检测到无限循环:“function
编译器错误 C3564 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,读取了未初始化的值:“function
编译器错误 C3565 编译 concurrency::parallel_for_each 的调用关系图时,tile_static 的总内存量(number 字节)超过了限制(number 字节)
编译器错误 C3566 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,具有副作用的块嵌套太深:“function
编译器错误 C3567 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,检测到被零除或对零求模:“function
编译器错误 C3568 编译 concurrency::parallel_for_each 的调用关系图时,寄存器之和超过了限制 number。 请简化程序
编译器错误 C3569 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,检测到争用条件:“function
编译器错误 C3570 使用 /clr 编译时非法使用了 amp 限制的范围
编译器错误 C3571 “type”: 非法的计算域参数;不是类类型
编译器错误 C3572 “type”: 非法的计算域参数;缺少公共成员“static const int rank”,或 rank 值为非正数
编译器错误 C3573 传递给 concurrency::parallel_for_each 的 concurrency::graphics::sampler 实例数不能超过 number
编译器错误 C3574 “type”: 非法的平铺范围: 必须是正数,并且 (1) Z <= number;(2) ZYX <= number
编译器错误 C3575 “type”:非法计算域参数;缺少公共成员:“concurrency::index<number> _map_index(const concurrency::index<number>&) restrict(amp)”
编译器错误 C3576 “type”: concurrency::details::_Parallel_for_each 参数 #number 使用了不支持的类型
编译器错误 C3577 concurrency::parallel_for_each 内核参数是非法的: 无法解析对成员“'void operator()(type) restrict(amp)”的调用
编译器错误 C3578 传递给 concurrency::parallel_for_each 的函数对象大小不能超过 number 字节
编译器错误 C3579 传递给 concurrency::parallel_for_each 的 concurrency::array 和 concurrency::graphics::texture 只读实例数不能超过 number
编译器错误 C3580 传递给 concurrency::parallel_for_each 的 concurrency::array 和 concurrency::graphics::texture 可写实例数不能超过 number
编译器错误 C3581 “type”: amp 限制代码中存在不支持的类型
编译器错误 C3582 已过时。
编译器错误 C3583 “identifier”: 变量大小(number 字节)大于 amp 限制代码中支持的最大大小(number 字节)
编译器错误 C3584 tile_static 对“identifier”的用法不受支持
编译器错误 C3585 “identifier”的 amp 限制代码中包含不受支持的存储类
编译器错误 C3586 “identifier”: amp 限制代码中不支持使用全局或静态变量
编译器错误 C3587 amp 限制代码中不支持 dynamic_cast
编译器错误 C3588 在 amp 限制代码中不支持从“type1”强制转换为“type2
编译器错误 C3589 “string”: amp 限制代码中不支持使用字符串字面量
编译器错误 C3590 “token”: 如果 lambda 进行了 amp 限制,则不支持按引用捕获或“this”捕获
编译器错误 C3591 amp 限制代码中不支持 typeid 运算符
编译器错误 C3592 amp 限制代码中不支持内联本机程序集(“__asm”)
编译器错误 C3593 amp 限制代码中不支持“goto”
编译器错误 C3594 amp 限制代码中不支持异常处理(try、catch、throw 等)
编译器错误 C3595 amp 限制代码中的常量值超出了支持的范围
编译器错误 C3596 “parameter”(“type”): lambda 捕获的变量在 amp 限制代码中有不受支持的类型
编译器错误 C3597 “parameter”: 如果 lambda 进行了 amp 限制,则不允许按值捕获“identifier
编译器错误 C3598 amp 限制代码中不支持标签语句
编译器错误 C3599 “operator”: 在 amp 限制代码中,无法对指向布尔值的指针执行指针算术
编译器错误 C3600 “function”: 编译以下位置的非平铺 concurrency::parallel_for_each 的调用关系图时,检测到使用了 tile_static 内存:“function
编译器错误 C3601 “type”: 对 amp 诊断函数“function”来说是无效的参数类型
编译器错误 C3602 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,检测到不受支持的控制流:“function
编译器错误 C3603 “symbol”: 尚不支持类型“type
编译器错误 C3604 “identifier”: 只能在 gc 堆上创建托管对象
编译器错误 C3605 编译以下位置的 concurrency::parallel_for_each 的调用关系图时,采样器的总数(number 个已捕获,number 个已预定义)超过了 number:“function
编译器错误 C3606 无法将内部函数“function”映射到 HLSL
编译器错误 C3609 “identifier”:“密封/最终”函数必须是虚拟函数
编译器错误 C3610 “identifier”: 在调用“method”方法之前必须将值类型“装箱”
编译器错误 C3611 “identifier”: 密封函数不能具有纯说明符
编译器错误 C3612 “identifier”: 密封类不能具有任何纯虚方法
编译器错误 C3613 “->”后缺少返回类型(假定为“int”)
编译器错误 C3614 同一类中包大小的不同值;先前的值为“value”,新值为“value
编译器错误 C3615 constexpr 函数“function”不能生成常数表达式
编译器错误 C3616 已过时。
编译器错误 C3617 结构化绑定的初始值设定项必须是数组或非联合类类型;不允许使用“type_name”类型
编译器错误 C3618 “declaration”: 标记为 DllImport 的方法无法定义
编译器错误 C3619 不能在托管/ WinRT 类型中声明模板
编译器错误 C3620 “type”: 不允许在 WinRT 类型上设置对齐
编译器错误 C3621 “type”: WinRT 类型仅允许默认包装值(number)
编译器错误 C3622 “type”: 无法实例化声明为“keyword”的类
编译器错误 C3623 “identifier”: 托管/ WinRT 类型不支持位域
编译器错误 C3624 “type”: 使用此类型需要引用程序集/模块“identifier
编译器错误 C3625 “class”: 本机类型不能从托管/ WinRT 类型“type”派生
编译器错误 C3626 “identifier”:“keyword”关键字只能用于作为委托的指针的 COM 接口、成员函数和数据成员
编译器错误 C3627 只能装箱值类型
编译器错误 C3628 “class”: 托管/WinRT 类只支持公共继承
编译器错误 C3629 “token”: 捕获默认值只能出现在 lambda 捕获列表的开头
编译器错误 C3630 处理令牌“token”时出错(在 Visual Studio 2022 中已过时。)
编译器错误 C3631 “event”: 无法重载托管/WinRT 事件
编译器错误 C3632 “event”: 用于 construct 的事件样式非法
编译器错误 C3633 不能将“identifier”定义为托管“class”的成员
编译器错误 C3634 “member”: 不能定义托管或 WinRT 类的抽象方法
编译器错误 C3635 “identifier”: 无法应用到托管或 WinRT 类(请改用“identifier”)
编译器错误 C3636 “identifier”: 无法应用到此类型
编译器错误 C3637 “function”: 友元函数定义不能是函数模板/泛型的专用化
编译器错误 C3638 “operator”: 标准装箱和取消装箱转换运算符不能重新定义
编译器错误 C3639 属于默认参数一部分的 lambda 只能具有 init-capture
编译器错误 C3640 “member”: 局部类的引用成员函数或虚拟成员函数必须进行定义
编译器错误 C3641 “function”: 用 /clr:pure/clr:safe 编译的函数的调用约定“convention”无效
编译器错误 C3642 “function”: 不能从本机代码中调用包含 __clrcall 调用约定的函数
编译器错误 C3643 “%$S”: 无法分解“%$S”和“%$S”中具有非静态数据成员的类型
编译器错误 C3644 “function”: 不能编译生成托管代码的函数
编译器错误 C3645 “function”: 不能对编译为本机代码的函数使用 __clrcall
编译器错误 C3646 “identifier”: 未知重写说明符
编译器错误 C3647 已过时。
编译器错误 C3648 托管类型不支持此显式重写语法
编译器错误 C3649 不允许对 /ZW 使用此显式重写语法
编译器错误 C3650 “member”: 不能用作显式重写,必须是基类的虚拟成员函数
编译器错误 C3651 “member”: 不能用作显式重写,必须是基类成员
编译器错误 C3652 “member”: 显式重写的函数必须是虚拟函数
编译器错误 C3653 “identifier”: 不能用作命名重写: 找不到要重写的函数;是否忘记了使用 :: 运算符显式命名该函数?
编译器错误 C3654 “token”: 显式重写中有语法错误
编译器错误 C3655 “member”: 函数已经显式替代
编译器错误 C3656 “keyword”: 重写说明符不能重复
编译器错误 C3657 析构函数/终结器不能进行显式重写,也不能被显式重写
编译器错误 C3658 已过时。
编译器错误 C3659 “member”: 不支持重写说明符“keyword
编译器错误 C3660 “member1”隐藏继承的成员“member2”
编译器错误 C3661 显式重写列表没有发现任何要重写的方法
编译器错误 C3662 “member”: 重写说明符“keyword”只允许在托管/ WinRT 类的成员函数上使用
编译器错误 C3663 已过时。
编译器错误 C3664 “member”: 不能用作显式重写,必须具有“公共”或“受保护的”可访问性
编译器错误 C3665 “member”: 析构函数/终结器上不允许使用重写说明符“keyword
编译器错误 C3666 “constructor”: 构造函数上不允许使用重写说明符“keyword”
编译器错误 C3667 “attribute”: 属性不支持包扩展
编译器错误 C3668 “member”: 包含重写说明符“override”的方法没有重写任何基类方法
编译器错误 C3669 “member”: 静态成员函数或构造函数上不允许使用重写说明符“override”
编译器错误 C3670 “member”: 无法重写不可访问的基类方法“member
编译器错误 C3671 “member”: 函数不重写“member
编译器错误 C3672 伪析构函数表达式只能用作函数调用的一部分
编译器错误 C3673 “class”: 类没有复制构造函数
编译器错误 C3674 未找到标准库模块“module
编译器错误 C3675 “function”: 已定义了“property”,因此被保留
编译器错误 C3676 “class”: ref 类和基类具有不兼容的属性“[attribute]”
编译器错误 C3677 “operator”后的字符串字面量不能具有编码前缀
编译器错误 C3678 “operator”后的字符串字面量必须是空字符串“""""”
编译器错误 C3679 “operator """"”后应有一个文本后缀标识符
编译器错误 C3680 不能将用户定义的字符串字面量与不匹配的文本后缀标识符连接
编译器错误 C3681 “fallthrough”: 属性可能仅出现在封闭的 switch 语句中
编译器错误 C3682 “operator identifier”: 文本运算符/文本运算符模板不能声明为具有“C 链接”
编译器错误 C3683 不能使用相同的文本后缀标识符定义原始文本运算符和文本运算符模板
编译器错误 C3684 “operator identifier”: 文本运算符的声明具有无效的参数列表
编译器错误 C3685 “operator identifier”: 文本运算符模板不能具有函数参数
编译器错误 C3686 “operator identifier”: 文本运算符模板必须具有一个作为参数包的模板参数
编译器错误 C3687 “operator identifier”: 文本运算符模板必须具有“char”类型的非类型模板参数
编译器错误 C3688 文本后缀“suffix”无效;未找到文本运算符或文本运算符模板“operator identifier
编译器错误 C3689 “operator identifier”: 文本运算符/文本运算符模板必须在全局或命名空间范围内
编译器错误 C3690 应该为字符串字面量,但找到的是用户定义的字符串字面量
编译器错误 C3691 文本前缀“prefix”无效
编译器错误 C3692 伪析构函数表达式中不能使用非标量类型“type_name
编译器错误 C3693 “identifier”: 无法通过引用捕获位域
编译器错误 C3694 结构化绑定声明不能包含除“static”、“thread_local”、“auto”和 cv 限定符以外的任何说明符
编译器错误 C3695 “%$S”: 无法分解包含匿名联合或结构的类型
编译器错误 C3696 “keyword”: 无法在“%”上使用此限定符
编译器错误 C3697 “keyword”: 无法在“^”上使用此限定符
编译器错误 C3698 “type”: 不能将此类型用作“operator”的参数
编译器错误 C3699 “operator”: 不能对类型“type”使用此间接寻址
编译器错误 C3700 文件名缺少正在终止的“%c”
编译器错误 C3701 “function”: 事件源没有事件
编译器错误 C3702 COM 事件需要 ATL
编译器错误 C3703 “event_handler”: 事件处理程序方法必须具有与源“event”相同的存储类
编译器错误 C3704 “member”: vararg 方法无法激发事件
编译器错误 C3705 “function”: 找不到事件接口
编译器错误 C3706 “function”: 必须是 COM 接口才能激发 COM 事件
编译器错误 C3707 “member”: 调度接口方法必须有 dispid
编译器错误 C3708 “function”:“keyword”的用法不正确;必须是兼容事件源的成员
编译器错误 C3709 “function”: 在 __hook/__unhook 中指定事件的语法不正确
编译器错误 C3710 “function”: 在 __hook/__unhook 中指定事件处理程序的语法不正确
编译器错误 C3711 “event”: 非托管事件源方法必须返回 void 或者整型类型
编译器错误 C3712 “event_handler”: 事件处理程序方法必须返回与源“event”相同的类型
编译器错误 C3713 “event_handler”: 事件处理程序方法必须具有与源“event”相同的函数参数
编译器错误 C3714 “event_handler”: 事件处理程序方法必须具有与源“event”相同的调用约定
编译器错误 C3715 “pointer”: 必须是指向“type”的指针
编译器错误 C3716 “%$L”: 不允许生成具有模块构造的预编译标头
编译器错误 C3717 “member”: 不能定义激发事件的方法
编译器错误 C3718 只能在接收类的成员函数的上下文中调用“__keyword
编译器错误 C3719 “member”: 基于接口的事件源只能用于 COM 事件
编译器错误 C3720 “type”: 只能在双重或者调度接口上实现 IDispatch
编译器错误 C3721 “signature”: 事件签名不兼容
编译器错误 C3722 不允许泛型事件
编译器错误 C3723 “function”: 无法解析事件
编译器错误 C3724 必须添加 #include <windows.h> 才能对事件使用多线程处理
编译器错误 C3725 已过时。
编译器错误 C3726 无法将 SecureHotPatch 转换应用于“%s”。 解释
编译器错误 C3727 “event”: 托管事件必须是成员函数或是指向委托的指针的数据成员
编译器错误 C3728 “event”: 事件没有引发方法
编译器错误 C3729 属性说明符不能同时包含 using 命名空间前缀和范围属性
编译器错误 C3730 已过时。
编译器错误 C3731 事件“event”和处理程序“event_handler”不兼容;事件源和事件处理程序必须有相同的事件类型
编译器错误 C3732 “interface”: 激发 COM 事件的自定义接口不能从 IDispatch 继承
编译器错误 C3733 “event”: 指定 COM 事件的语法不正确;是否忘记了“__interface”?
编译器错误 C3734 “class”: 托管或 WinRT 类不能是组件类
编译器错误 C3735 模板或泛型已重新定义
编译器错误 C3736 “member”: 必须是方法,在托管事件中也可以是数据成员
编译器错误 C3737 “identifier”: 委托不能有显式调用约定
编译器错误 C3738 “convention”: 显式实例化的调用约定必须与被实例化的模板的调用约定匹配
编译器错误 C3739 “class”: 仅当 event_receiver 的“layout_dependent”参数为 true 时才支持此语法
编译器错误 C3740 “template”: 模板不能发出或接收事件
编译器错误 C3741 “class”: 当 event_receiver 的“layout_dependent”参数为 true 时,必须是组件类
编译器错误 C3742 “token1”:“attribute”的属性参数中的标记顺序不均衡,应为“token2
编译器错误 C3743 当 event_receiver 的“layout_dependent”参数为 True 时才能挂接/解除挂接整个接口
编译器错误 C3744 __unhook 必须至少有 3 个用于托管事件的参数
编译器错误 C3745 “function”: 只有事件才能被“引发”
编译器错误 C3746 标准属性“identifier”可最多在属性列表中出现一次
编译器错误 C3747 缺少默认模板/泛型参数: 参数 number
编译器错误 C3748 “interface”: 非托管接口可能无法激发事件
编译器错误 C3749 “attribute”: 自定义属性不能在函数内部使用
编译器错误 C3750 “token”: 属性列表中出现意外标记
编译器错误 C3751 “identifier”: 属性列表中出现意外标识符
编译器错误 C3752 “attribute”: 无法对属性进行分类;不应在此上下文中使用“keyword
编译器错误 C3753 不允许使用泛型属性
编译器错误 C3754 委托构造函数: 无法对“type”类型的实例调用成员函数“member
编译器错误 C3755 “identifier”: 可能未定义委托
编译器错误 C3756 已过时。
编译器错误 C3757 “type”:“constexpr”函数不允许使用类型(在 Visual Studio 2022 中已过时。)
编译器错误 C3758 “member”: 虚拟函数不能声明为“constexpr”
编译器错误 C3759 “member”: 非文本类型的成员函数不能声明为“constexpr”(在 Visual Studio 2022 中已过时。)
编译器错误 C3760 请使用 __property 关键字声明托管/WinRT“class”中的属性
编译器错误 C3761 “function”:“retval”只能出现在函数的最后一个参数上
编译器错误 C3762 无法处理属性“attribute
编译器错误 C3763 “type”:“retval”和“out”只能出现在数据指针类型上
编译器错误 C3764 “member”: 无法重写基类方法“member
编译器错误 C3765 “event”: 无法在标记为 event_receiver 的类/结构“type”中定义事件
编译器错误 C3766 “type”必须提供接口方法“function”的实现
编译器错误 C3767 “function”: 候选函数不可访问
编译器错误 C3768 在纯托管代码中不能采用虚拟 vararg 函数的地址
编译器错误 C3769 “identifier”: 嵌套类不能与它的直接封闭类同名
编译器错误 C3770 “type”: 不是有效基类
编译器错误 C3771 “identifier”: 在最近的命名空间范围内找不到友元声明
编译器错误 C3772 “identifier”: 友元模板声明无效
编译器错误 C3773 请使用 /await 编译器开关启用协同例程
编译器错误 C3774 找不到“scope::identifier”: 请包括 header_name 标头
编译器错误 C3775 “function”的返回类型不应为“type
编译器错误 C3776 无法在具有非 void 最终返回类型的协同例程中返回 void 类型的表达式
编译器错误 C3777 “function”: 协同例程无法采用变量参数列表
编译器错误 C3778 alloca: 不可用于协同例程
编译器错误 C3779 “function”: 若要使用将会返回“auto”的函数,必须首先定义此函数
编译器错误 C3780 “function”: 若要使用将会返回“auto”的转换函数,必须首先定义此函数
编译器错误 C3781 “keyword”: 不能在“type”类型的协同例程中使用。 keyword 或 keyword 必须存在于关联的 promise_type 中
编译器错误 C3782 type: 协同例程的承诺不可同时包含 keyword 和 keyword
编译器错误 C3783 “identifier”: 不能是协同例程
编译器错误 C3784 keyword 表达式无法在此上下文中显示
编译器错误 C3785 “std::integer_sequence”的第一个模板参数必须是整型
编译器错误 C3786 “std::make_integer_sequence”的第二个模板参数必须为大于或等于零的整数常量
编译器错误 C3787 无法推导此协同例程的返回类型
编译器错误 C3788 此函数不可为协同例程:“type_name”不是一个类
编译器错误 C3789 此函数不可为协同例程:“%$T”不声明成员“%$I()”
编译器错误 C3790 捕获“*this”需要“%1$M”
编译器错误 C3791 当默认捕获模式为通过复制 (=) 捕获时,无法显式捕获“this”
编译器错误 C3792 无法识别的哈希算法“%$I”
编译器错误 C3793 算法“%$I”的哈希值长度必须刚好为 %u 个字符
编译器错误 C3794 #pragma file_hash 中指定的文件“%$S”也属于当前编译单元
编译器错误 C3795 文件“%$S”的多个冲突的哈希值
编译器错误 C3796 “operator %$I”: 既不是字符串字面量运算符模板,也不是数字文本运算符模板
编译器错误 C3797 “keyword”: 事件声明不能具有重写说明符(而应将该说明符放在事件的 add/remove/raise 方法上)
编译器错误 C3798 “keyword”: 属性声明不能具有重写说明符(而应将该说明符放在属性的 get/set 方法上)
编译器错误 C3799 索引属性不能有空的参数列表
编译器错误 C3800 “declaration”: 不能混合属性和事件
编译器错误 C3801 “attribute”: 属性可能没有参数子句
编译器错误 C3802 已过时。
编译器错误 C3803 “property”: 属性具有与其某一个访问器“accessor”不兼容的类型
编译器错误 C3804 “member”: 属性的访问器方法必须是全部静态或全部非静态的
编译器错误 C3805 “token”: 意外标记,应为“}”或者“,”
编译器错误 C3806 “token”: 意外标记,应为“{”或成员初始值设定项
编译器错误 C3807 “type”: 具有 ComImport 属性的类不能从“type”派生,只允许派生接口实现
编译器错误 C3808 “type”: 包含 ComImport 属性的类不能定义成员“member”,只允许定义 abstract 或 dllimport 函数
编译器错误 C3809 “type”: 托管/WinRT 类型不能有任何友元函数/类/接口
编译器错误 C3810 “%1$S”: 无法分解具有不确定基类“type_name”的类型
编译器错误 C3811 已过时。
编译器错误 C3812 “__property”必须是属性声明中的第一个标记
编译器错误 C3813 属性声明只能在托管/WinRT 类型的定义内出现
编译器错误 C3814 已过时。
编译器错误 C3815 “member”方法的返回类型必须与资源库的最后一个参数的类型匹配
编译器错误 C3816 “class/struct member”以前是用不同的托管/WinRT 修饰符声明或定义的
编译器错误 C3817 “declaration”: 属性只能应用于函数
编译器错误 C3818 数组属性声明“property”不应重载索引属性“property
编译器错误 C3819 已过时。
编译器错误 C3820 “identifier”: 初始值设定项必须是托管的
编译器错误 C3821 “function”: 无法在非托管函数中使用托管类型或函数
编译器错误 C3822 已过时。
编译器错误 C3823 已过时。
编译器错误 C3824 “type”: 此类型不能出现在此上下文中(函数参数、返回类型或静态成员)
编译器错误 C3825 “type”: 托管/WinRT 类只能支持托管/WinRT 事件
编译器错误 C3826 已过时。
编译器错误 C3827 标准属性“deprecated”可能未带参数,或没有描述原因的字符串字面量
编译器错误 C3828 无法为“type”类型的“keyword”表达式指定位置参数
编译器错误 C3829 标准属性“noreturn”只能应用于函数
编译器错误 C3830 “type1”: 无法从“type2”继承,值类型只能从接口类继承
编译器错误 C3831 “identifier”:“type”不能有固定的数据成员或返回固定指针的成员函数
编译器错误 C3832 “typelib”: 类型库看上去似乎是为 32 位指针生成的;请更改“ptrsize”限定符
编译器错误 C3833 “type”: identifier 的目标类型无效
编译器错误 C3834 显式强制转换为固定指针非法;改用固定的局部变量
编译器错误 C3835 已过时。
编译器错误 C3836 静态构造函数不允许有成员初始值设定项列表
编译器错误 C3837 不可在此上下文中使用属性
编译器错误 C3838 不能从“type”继承
编译器错误 C3839 无法更改托管/ WinRT 类型中的对齐方式
编译器错误 C3840 已过时。
编译器错误 C3841 已过时。
编译器错误 C3842 “identifier”: 不支持在托管/ WinRT 类型的成员函数上使用“const”和“volatile”限定符
编译器错误 C3843 “identifier”: 不支持在托管/ WinRT 类型的成员函数上使用引用限定符
编译器错误 C3844 “identifier”: 无法从“source”导入符号,因为当前范围内已存在“identifier
编译器错误 C3845 已过时。
编译器错误 C3846 “identifier”: 无法从“source”导入符号: 因为“identifier”已从另一个程序集“assembly”导入
编译器错误 C3847 显式实例化上的 noexcept 说明符必须与被实例化的模板的 noexcept 说明符匹配
编译器错误 C3848 具有类型“type”的表达式会丢失一些 const-volatile 限定符以调用“identifier
编译器错误 C3849 “type”类型的表达式中的函数样式调用会丢失所有 number 个可用运算符重载的 const 和/或 volatile 限定符
编译器错误 C3850 “token”: 通用字符名称指定的字符无效
编译器错误 C3851 “token”: 通用字符名称不能指定基本字符集中的字符
编译器错误 C3852 “member”具有类型“type”: 聚合初始化无法初始化该成员
编译器错误 C3853 “=”: 通过指向函数的引用重新初始化引用或分配是非法的
编译器错误 C3854 “=”左侧的表达式计算为函数。 无法分配到函数(函数不是左值)
编译器错误 C3855 “function”: 模板/泛型参数“identifier”与声明不兼容
编译器错误 C3856 “class”: 类不是类模板/泛型
编译器错误 C3857 “template”: 不允许使用多个模板/泛型参数列表
编译器错误 C3858 “identifier”: 不能在当前范围内重新声明
编译器错误 C3859 未能创建 PCH 的虚拟内存
编译器错误 C3860 模板/泛型参数列表(在类模板/泛型名称后面)必须按模板/泛型参数列表中使用的顺序列出参数
编译器错误 C3861 “identifier”: 找不到标识符
编译器错误 C3862 “function”: 不能使用 /clr:pure/clr:safe 编译非托管函数
编译器错误 C3863 数组类型“type”不可分配
编译器错误 C3864 已过时。
编译器错误 C3865 “keyword”: 只能用于本机成员函数
编译器错误 C3866 析构函数/终结器调用缺少参数列表
编译器错误 C3867 “function”:非标准语法;请使用“&”来创建指向成员的指针
编译器错误 C3868 “type”: 泛型参数“parameter”上的约束与声明上的约束不同
编译器错误 C3869 gcnew 约束缺少空参数列表“()”
编译器错误 C3870 “parameter”:“__declspec(specifier)”只能应用于整型参数
编译器错误 C3871 “parameter”:“__declspec(guard(overflow))”仅在函数的前 64 个参数上受支持
编译器错误 C3872 “0xvalue”: 标识符中不允许使用此字符
编译器错误 C3873 “0xvalue”: 不允许将此字符作为标识符的第一个字符
编译器错误 C3874 “identifier”的返回类型应为“type1”而不是“type2
编译器错误 C3875 调用非静态成员函数缺少参数列表
编译器错误 C3876 十六进制浮点文本需要一个指数
编译器错误 C3877 TypeForwardedTo 属性的类型参数无效
编译器错误 C3878 语法错误:“%2s”后出现意外标记“%1$L”
编译器错误 C3879 “member”: 不能是 initonly 数据成员
编译器错误 C3880 “member”: 不能是 literal 数据成员
编译器错误 C3881 只能从直接基继承构造函数
编译器错误 C3882 “class”: 构造函数已继承自“class
编译器错误 C3883 “member”: 必须初始化 initonly 静态数据成员
编译器错误 C3884 “type”: 无法对未知大小的数组进行值初始化
编译器错误 C3885 “type”: 无法用空的初始值设定项列表初始化未知大小的数组
编译器错误 C3886 “member”: 必须初始化 literal 数据成员
编译器错误 C3887 “member”: literal 数据成员的初始值设定项必须是常数表达式
编译器错误 C3888 “member”: C++/CLI 不支持与此 literal 数据成员关联的常数表达式
编译器错误 C3890 “member”: 不能采用 literal 数据成员的地址
编译器错误 C3891 “member”: literal 数据成员不能用作左值
编译器错误 C3892 “variable”: 不能给常量变量赋值
编译器错误 C3893 “member”: initonly 数据成员的左值只能在类“class”的实例构造函数中使用
编译器错误 C3894 “member”: initonly 静态数据成员的左值只能在类“class”的类构造函数中使用
编译器错误 C3895 “member”: type 数据成员不能是“volatile”
编译器错误 C3896 “member”: 不正确的初始值设定项: 此 literal 数据成员只能使用“nullptr”进行初始化
编译器错误 C3897 已过时。
编译器错误 C3898 “member”: type 数据成员只能是托管类型的成员
编译器错误 C3899 “member”: 不允许在类“class”的某个并行区域中直接使用 initonly 数据成员的左值
编译器错误 C3900 “member”: 不允许在当前范围内使用
编译器错误 C3901 “function”: 必须具有返回类型“type
编译器错误 C3902 “function”: 最后一个参数的类型必须是“type
编译器错误 C3903 “property”: 没有 set 或 get 方法
编译器错误 C3904 “property”: 必须指定 number 个参数
编译器错误 C3905 不支持对内部类型“type”进行未对齐的访问
编译器错误 C3906 对于 vararg 或非原型函数,内部类型“type”不是支持的返回类型或参数类型
编译器错误 C3907 无法跳转到位于不同”if constexpr”语句或子语句中的标签
编译器错误 C3908 访问级别的限制低于“identifier”的限制
编译器错误 C3909 托管/WinRT 事件的声明必须出现在托管/WinRT 类型中
编译器错误 C3910 “event”: 必须定义成员“member
编译器错误 C3911 “member”: 函数必须具有类型“type
编译器错误 C3912 “event”: 事件的类型必须是委托类型
编译器错误 C3913 必须为默认属性编制索引
编译器错误 C3914 默认属性不能是静态的
编译器错误 C3915 “identifier”没有默认索引属性(类索引器)
编译器错误 C3916 索引为 %d 的函数参数与 %d 请求的对齐方式不相符
编译器错误 C3917 “token”: construct 声明样式已过时(你是否想改用“[' ']”?)
编译器错误 C3918 该用法要求“identifier”是数据成员
编译器错误 C3919 “function”: 函数必须具有类型“return_type (type)”
编译器错误 C3920 “operator”: 不能定义后缀增量/减量 CLR/WinRT 运算符。调用后缀 CLR/WinRT 运算符将调用相应的前缀 CLR/WinRT 运算符(op_Increment/op_Decrement),但具有后缀语义
编译器错误 C3921 已过时。
编译器错误 C3923 “member”: 不允许在托管/WinRT 类的成员函数中使用局部类、结构或联合定义
编译器错误 C3924 委托构造函数调用“constructor”的参数 #number 中出错:
编译器错误 C3925 “directive_name”指令后应有一个循环(forwhiledo)
编译器错误 C3926 “parallel”指令中的常量无效
编译器错误 C3927 “->”: 非函数声明符后不允许尾随返回类型
编译器错误 C3928 “->”: 带圆括号的声明符后不允许尾随返回类型
编译器错误 C3930 “function”: 没有任何重载函数具有与环境上下文“context”兼容的限制说明符
编译器错误 C3931 “type”: 无法调用限制说明符与环境上下文不兼容的函数
编译器错误 C3932 已过时。
编译器错误 C3933 “class”: 析构函数的限制说明符必须涵盖所有构造函数上的限制的联合
编译器错误 C3934 使用任意“main”格式的函数不能包含除 restrict(cpu) 以外的限制说明符
编译器错误 C3935 “identifier”: 重新定义;与限制说明符重叠
编译器错误 C3936 “identifier”: 无法识别的限制说明符
编译器错误 C3937 不允许使用空限制说明符
编译器错误 C3938 “identifier”: 外部“C”函数不支持多个限制说明符
编译器错误 C3939 “identifier”: 不允许使用成员函数指针、函数指针和引用带“amp”限制说明符的函数
编译器错误 C3940 “identifier”: 找不到标识符 - 编译器和库的版本可能不匹配。 请确保 vccorlib.h/.lib、vccorlib120.dll 和 c1xx.dll 匹配
编译器错误 C3941 “condition”: 需要“/clr”命令行选项
编译器错误 C3945 “type”: 无法引发或捕捉不从 Platform::Exception 派生的 winrt 对象
编译器错误 C3946 “type”: 无法向此类型应用 typeid
编译器错误 C3947 “typeid”: 无法向包扩展应用 typeid
编译器错误 C3948 “keyword”: 包扩展不能出现在此上下文中
编译器错误 C3949 包扩展“...”不能出现在带圆括号的抽象声明符中
编译器错误 C3950 已过时。
编译器错误 C3951 在投影的 WinRT 类型“type”中不能使用指向成员的指针。 请改用委托。
编译器错误 C3952 “type”: WinRT 不支持“in/out”数组。 请在公共 API 上对“in”使用“const Array<T>^”,对“out”使用“WriteOnlyArray<T>”或“Array<T>^*”
编译器错误 C3953 在 WinRT 模块中不能使用托管类“type”。 (在 Visual Studio 2022 中已过时。)
编译器错误 C3954 “type”: 从 WinRT 类型的发布方法中返回的数组必须使用“Array<T>^”的形式
编译器错误 C3955 “type”: 公共构造函数不能包含“out”参数或“WriteOnlyArray<T>”
编译器错误 C3956 “type”: 类型标记为供“type”独占使用,不能用作“derived_type”的基础
编译器错误 C3957 “type”: 不能对 WinRT 类型使用“new”;请改用“ref new”
编译器错误 C3958 “type”: 不能对 WinRT 类型使用“gcnew”;请改用“ref new”
编译器错误 C3959 “ref new”只能用于创建 WinRT 类型的对象
编译器错误 C3960 已过时。
编译器错误 C3961 不支持静态构造函数
编译器错误 C3962 不支持泛型类
编译器错误 C3963 不支持多维数组
编译器错误 C3964 不支持交错数组
编译器错误 C3965 不支持参数数组
编译器错误 C3966 “function”: 不支持泛型函数
编译器错误 C3967 从模块“module”导入“identifier”时出错
编译器错误 C3968 标记“token”不可用作模块名称分隔符;请改用句号(“.”)
编译器错误 C3969 不一致的模块名称:“module1”和“module1
编译器错误 C3970 “identifier”:“keyword”只能应用到全局范围或命名空间范围的“ref class”或“ref struct”
编译器错误 C3971 “type”: 完全定义后,部分定义无法显示
编译器错误 C3972 “type”:“partial”只能应用于类声明或定义
编译器错误 C3973 未实现的功能: %$M
编译器错误 C3974 “%$S”: OpenMP“for”语句中的索引变量必须包含整型
编译器错误 C3975 以前使用不同的修饰符声明或定义了“class/struct identifier
编译器错误 C3976 只有将“identifier1”声明为“public”才能使用“identifier2
编译器错误 C3977 该用法需要引用定义“identifier”的程序集
编译器错误 C3978 “identifier”: 静态属性不允许作为 WinRT 接口或值类型的成员
编译器错误 C3979 “type”: 使用属性“attribute”而不是“value
编译器错误 C3980 无法将“type”发到元数据中
编译器错误 C3981 “type”: 值类型不能具有任何静态数据成员“identifier
编译器错误 C3982 “type”: 值类型不能具有任何非公共数据成员“identifier
编译器错误 C3983 “type”: 值类型不能具有任何公共非数据成员“identifier
编译器错误 C3984 “type”: 非值类型不能具有任何公共数据成员“identifier
编译器错误 C3985 “identifier”: 公共成员的签名包含私有类型“member
编译器错误 C3986 “identifier”: 公共成员的签名包含本机类型“member
编译器错误 C3987 “identifier”: 公共成员的签名包含本机类型“type
编译器错误 C3988 “type”: 本机类型不能是公共的
编译器错误 C3989 “type”: 嵌套类型不能是公共的
编译器错误 C3990 “type”: 属性“attribute”不能是私有或嵌套的
编译器错误 C3991 “type”: 无法实现非公共或嵌套的接口“interface
编译器错误 C3992 “identifier”: 公共成员的签名包含无效类型“type
编译器错误 C3993 “type”: 值类型必须至少包含一个公共字段
编译器错误 C3994 “type”: 值类型无法实现接口或具有虚拟函数
编译器错误 C3995 “type”: 值类型不能具有任何事件成员“identifier
编译器错误 C3996 已过时。
编译器错误 C3997 Warbird: message
编译器错误 C3998 “c++version”: 不受支持的 C++ 版本;默认为“c++version

另请参阅

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