编译器错误 C3200 - C3299

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

重要

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

错误消息

错误 消息
编译器错误 C3200 “type”:模板参数“parameter”的模板参数无效,应为类模型
编译器错误 C3201 类模板“template”的模板参数列表与模板参数“parameter”的模板参数列表不匹配
编译器错误 C3202 “identifier”:默认参数无效,应为类模型
编译器错误 C3203 “identifier”:未专用化的类模板/泛型不能用作模板/泛型参数“parameter”的模板/泛型参数,应为真实类型
编译器错误 C3204 “function”不能从 catch 块内调用
编译器错误 C3205 缺少模板 template 形参“identifier”的实参列表
编译器错误 C3206 “function”:“template”的模板/泛型参数无效,类模板/泛型“type”上缺少模板/泛型参数列表
编译器错误 C3207 “function”:“parameter”的模板参数无效,应为类模板
编译器错误 C3208 “function”:类模板“template”的模板参数列表与模板 template 参数“parameter”的模板参数列表不匹配
编译器错误 C3209 “type”:泛型类必须是托管/WinRT 类
编译器错误 C3210 “identifier”:访问声明只能应用于基类成员
编译器错误 C3211 “function”:显式专用化正在使用部分专用化语法,请改用 template <>
编译器错误 C3212 “function”:模板成员的显式专用化必须是显示专用化的成员
编译器错误 C3213 基类“class”的可访问性比“derived_class”低
编译器错误 C3214 “argument”:泛型“type”的泛型形参“parameter”的类型实参无效,不符合“constraint”约束
编译器错误 C3215 “constraint1”:泛型类型参数已由“constraint2”进行约束
编译器错误 C3216 约束必须是泛型参数,而不是“type
编译器错误 C3217 “parameter”:泛型参数不能在此声明中进行约束
编译器错误 C3218 “type”:类型不允许作为约束
编译器错误 C3219 “parameter”:泛型参数不能由多个非接口“type”进行约束
编译器错误 C3220 “interface”:接口不能有 progid
编译器错误 C3221 “member”:一个成员上不允许有多个“default”和“case”特性
编译器错误 C3222 “function”:无法为托管/WinRT 类型或泛型函数的成员函数声明默认参数
编译器错误 C3223 “property”:不能将“typeid”应用于属性
编译器错误 C3224 “type”:没有任何重载泛型类采用“number”泛型类型参数
编译器错误 C3225 “argument”的泛型类型参数不能是“type”,它必须是值类型或引用类型的句柄
编译器错误 C3226 泛型声明内不允许出现模板声明
编译器错误 C3227 “type”:不能使用“operator”来分配泛型类型
编译器错误 C3228 “function”:“argument”的泛型类型参数不能是“type”,它必须是值类型或句柄类型
编译器错误 C3229 “type”:不允许泛型类型参数上的间接寻址
编译器错误 C3230 “function”:“argument”的模板类型参数不能包含泛型类型参数:“type
编译器错误 C3231 “type”:模板类型参数不能使用泛型类型参数
编译器错误 C3232 “parameter”:泛型类型参数不能用于限定名中
编译器错误 C3233 “type”:泛型类型形参已被约束
编译器错误 C3234 泛型类可能无法从泛型类型参数派生
编译器错误 C3235 “specialization”:不允许显式专用化或部分专用化泛型类
编译器错误 C3236 不允许显式实例化泛型
编译器错误 C3237 “class”:泛型类不能是自定义特性
编译器错误 C3238 “type”:已将某个同名类型转发到程序集“assembly
编译器错误 C3239 “type”:公共语言运行时不允许使用指向内部/pin 指针的指针
编译器错误 C3240 “identifier”:必须是“type”的非重载抽象成员函数
编译器错误 C3241 “member”:“interface”没有引入该方法
编译器错误 C3242 “function”:只能显式重写虚函数
编译器错误 C3243 “interface”未引入任何重载函数
编译器错误 C3244 “member”:此方法由“interface1”引入,而非属于“interface2
编译器错误 C3245 “function”:使用变量模板需要模板参数列表
编译器错误 C3246 “class”:无法从“base_class”继承,因为它已声明为“inheritance
编译器错误 C3247 “coclass”:组件类不能继承自另一个组件类“base_class
编译器错误 C3248 已过时。 “function”:声明为“sealed”的函数无法被“function”重写
编译器错误 C3249 constexpr”函数的语句或子表达式非法(在 Visual Studio 2022 中已过时。)
编译器错误 C3250 “declaration”:不允许在“constexpr”函数体中进行声明(在 Visual Studio 2022 中已过时。)
编译器错误 C3251 无法调用在数值类型实例上的基类方法(在 Visual Studio 2022 中已过时。)
编译器错误 C3252 “function”:不能降低托管/WinRT 类型中的虚方法的可访问性
编译器错误 C3253 “function”:显式重写错误
编译器错误 C3254 “function”:类包含显式重写“function”,但并不从包含函数声明的接口派生
编译器错误 C3255 “type”:在本机堆上无法动态分配此值类型对象
编译器错误 C3256 “function”:变量使用不生成一个常量表达式(在 Visual Studio 2022 中已过时。)
编译器错误 C3257 已过时。
编译器错误 C3258 已过时。
编译器错误 C3259 constexpr”函数只能有一个 return 语句(在 Visual Studio 2022 中已过时。)
编译器错误 C3260 “token”:跳过 lambda 主体之前的意外标记
编译器错误 C3261 返回托管/WinRT 数组的函数在声明的结尾处必须有数组括号:“identifier(...) []”
编译器错误 C3262 数组索引无效:为 number 维“type”指定了 number 维度
编译器错误 C3263 已过时。
编译器错误 C3264 “identifier”:类-构造函数不能有返回类型
编译器错误 C3265 无法在非托管的“unmanaged_construct”中声明托管的“managed_construct
编译器错误 C3266 “function”:类-构造函数必须具有“void”参数列表
编译器错误 C3267 已过时。
编译器错误 C3268 “function”:泛型函数或泛型类的成员函数不能包含变量参数列表
编译器错误 C3269 “function”:不能使用“...”声明托管/WinRT 类型的成员函数
编译器错误 C3270 “field”:FieldOffset 特性只能在 StructLayout(LayoutKind::Explicit) 的上下文中使用
编译器错误 C3271 “field”:FieldOffset 特性的值“number”无效
编译器错误 C3272 “symbol”:符号需要 FieldOffset,因为它是用 StructLayout(LayoutKind::Explicit) 定义的结构/类 type_name 的成员
编译器错误 C3273 “keyword”:在 C++ try 块上不允许
编译器错误 C3274 finally / __finally 没有匹配的 try
编译器错误 C3275 “identifier”:无法使用该无限定符的符号(在 Visual Studio 2022 中已过时。)
编译器错误 C3276 “keyword”:在终止处理期间从 finally/__finally 块跳出的行为未定义
编译器错误 C3277 无法在托管“type”中定义非托管枚举“enumeration
编译器错误 C3278 接口或纯方法“function”的直接调用将在运行时失败
编译器错误 C3279 不允许对在 cli 命名空间中声明的类模板进行部分专用化、显式专用化和显式实例化
编译器错误 C3280 “function”:无法将托管类型的成员函数编译成非托管函数
编译器错误 C3281 “function”:全局运算符的签名中不能有托管/WinRT 类型“type
编译器错误 C3282 泛型参数列表只能出现在托管/WinRT 类、结构或函数上
编译器错误 C3283 “interface”:接口不能包含实例构造函数
编译器错误 C3284 函数“declarator”的泛型参数“parameter”的约束必须与函数“declarator”的泛型参数“parameter”的约束匹配
编译器错误 C3285 for each 语句不能对“type”类型的变量进行操作
编译器错误 C3286 “specifier”:迭代变量不能包含任何存储类说明符
编译器错误 C3287 类型“type”(GetEnumerator 的返回类型)必须具有适当的公共 MoveNext 成员函数和公共的 Current属性
编译器错误 C3288 “type”:非法取消对句柄类型的引用
编译器错误 C3289 “identifier”:trivial 属性不能被索引
编译器错误 C3290 “type”:trivial 属性不能具有引用类型
编译器错误 C3291 “default”:不能作为 trivial 属性的名称
编译器错误 C3292 cli 命名空间不能重新打开
编译器错误 C3293 “identifier”:使用“default”访问“class”类的默认属性(索引器)
编译器错误 C3294 已过时。
编译器错误 C3295 “#pragma specifier”只能在全局范围或命名空间范围上使用
编译器错误 C3296 “identifier”:已存在同名属性
编译器错误 C3297 “constraint2”:不能使用“constraint1”作为约束,因为“constraint1”具有值约束
编译器错误 C3298 “constraint1”:不能使用“constraint2”作为约束,因为“constraint2”具有 ref 约束,而“constraint1”具有值约束
编译器错误 C3299 “function”:无法指定约束,因为它们都继承自基方法

另请参阅

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