Compiler errors C2200 through C2299

The articles in this section of the documentation explain a subset of the error messages that are generated by the compiler.

Important

The Visual Studio compilers and build tools can report many kinds of errors and warnings. After an error or warning is found, the build tools may make assumptions about code intent and attempt to continue, so that more issues can be reported at the same time. If the tools make the wrong assumption, later errors or warnings may not apply to your project. When you correct issues in your project, always start with the first error or warning that's reported, and rebuild often. One fix may make many subsequent errors go away.

To get help on a particular diagnostic message in Visual Studio, select it in the Output window and press the F1 key. Visual Studio opens the documentation page for that error, if one exists. You can also use the search tool at the top of the page to find articles about specific errors or warnings. Or, browse the list of errors and warnings by tool and type in the table of contents on this page.

Note

Not every Visual Studio error or warning is documented. In many cases, the diagnostic message provides all of the information that's available. If you landed on this page when you used F1 and you think the error or warning message needs additional explanation, let us know. You can use the feedback buttons on this page to raise a documentation issue on GitHub. If you think the error or warning is wrong, or you've found another problem with the toolset, report a product issue on the Developer Community site. You can also send feedback and enter bugs within the IDE. In Visual Studio, go to the menu bar and choose Help > Send Feedback > Report a Problem, or submit a suggestion by using Help > Send Feedback > Send a Suggestion.

You may find additional assistance for errors and warnings in Microsoft Learn Q&A forums. Or, search for the error or warning number on the Visual Studio C++ Developer Community site. You can also search Stack Overflow to find solutions.

For links to additional help and community resources, see Visual C++ Help and Community.

Error messages

Error Message
Compiler error C2200 'function': function has already been defined
Compiler error C2201 'identifier': must have external linkage in order to be exported/imported
Compiler error C2202 'function': not all control paths return a value
Compiler error C2203 delete operator cannot specify bounds for an array
Compiler error C2204 'type': type definition found within parentheses
Compiler error C2205 'identifier': cannot initialize extern variables with block scope
Compiler error C2206 'function': typedef cannot be used for function definition
Compiler error C2207 'member': a member of a class template cannot acquire a function type
Compiler error C2208 'type': no members defined using this type
Compiler error C2209 'identifier': aliases cannot be used in constructor declarations
Compiler error C2210 'identifier': pack expansions cannot be used as arguments to non-packed parameters in alias templates
Compiler error C2211 A non-virtual destructor in a ref class derived from a ref class with a public destructor must also be public
Compiler error C2212 'identifier': __based not available for pointers to functions
Compiler error C2213 'identifier': illegal argument to __based
Compiler error C2214 pointers based on 'void' require the use of:>
Compiler error C2215 'keyword' cannot be used with '/arch:SSE'
Compiler error C2216 'keyword1' cannot be used with 'keyword2'
Compiler error C2217 'attribute1' requires 'attribute2'
Compiler error C2218 'calltype' cannot be used with '/arch:IA32'
Compiler error C2219 syntax error: type qualifier must be after '*'
Compiler error C2220 warning treated as error - no 'filetype' file generated
Compiler error C2221 Obsolete.
Compiler error C2222 unexpected type 'type': a base-class or member was expected
Compiler error C2223 left of '->identifier' must point to struct/union
Compiler error C2224 left of '.identifier' must have struct/union type
Compiler error C2225 Obsolete.
Compiler error C2226 syntax error: unexpected type 'type'
Compiler error C2227 left of '->identifier' must point to class/struct/union/generic type
Compiler error C2228 left of '.identifier' must have class/struct/union
Compiler error C2229 class/struct/union 'type' has an illegal zero-sized array
Compiler error C2230 could not find module 'name'
Compiler error C2231 '.identifier': left operand points to 'class/struct/union', use '->'
Compiler error C2232 '->identifier': left operand has 'class/struct/union' type, use '.'
Compiler error C2233 'identifier': arrays of objects containing zero-size arrays are illegal
Compiler error C2234 identifier': arrays of references are illegal
Compiler error C2235 Obsolete.
Compiler error C2236 unexpected token 'token'. Did you forget a ';'?
Compiler error C2237 multiple module declaration
Compiler error C2238 unexpected token(s) preceding 'token'
Compiler error C2239 'function': attempting to delete a __declspec(dllexport) function
Compiler error C2240 Obsolete.
Compiler error C2241 'identifier': member access is restricted
Compiler error C2242 typedef name cannot follow class/struct/union
Compiler error C2243 'conversion_type': conversion from 'type1' to 'type2' exists, but is inaccessible
Compiler error C2244 'identifier': unable to match function definition to an existing declaration
Compiler error C2245 non-existent member function 'function' specified as friend (member function signature does not match any overload)
Compiler error C2246 'identifier': illegal static data member in locally defined class
Compiler error C2247 'identifier' not accessible because 'class1' uses 'specifier' to inherit from 'class2'
Compiler error C2248 'identifier': cannot access accessibility member declared in class 'class'
Compiler error C2249 'identifier': no accessible path to accessibility member declared in virtual base 'class'
Compiler error C2250 'identifier': ambiguous inheritance of class::member'
Compiler error C2251 namespace 'namespace' does not have a member 'identifier' - Did you mean 'member'?
Compiler error C2252 an explicit instantiation of a template can only occur at namespace scope
Compiler error C2253 'function': pure specifier or abstract override specifier only allowed on virtual function
Compiler error C2254 'function': pure specifier or abstract override specifier not allowed on friend function
Compiler error C2255 'element': not allowed outside of a class definition
Compiler error C2256 illegal use of friend specifier on 'function'
Compiler error C2257 'specifier': specifier not allowed in trailing return type
Compiler error C2258 illegal pure syntax, must be '= 0'
Compiler error C2259 'class': cannot instantiate abstract class
Compiler error C2260 'specifier': invalid InternalsVisibleToAttribute friend assembly specifier
Compiler error C2261 'string': assembly reference is invalid and cannot be resolved
Compiler error C2262 'specifier': InternalsVisibleTo declarations cannot have a version, culture, or processor architecture specified
Compiler error C2263 Obsolete.
Compiler error C2264 'function': error in function definition or declaration; function not called
Compiler error C2265 Obsolete.
Compiler error C2266 'identifier': reference to a non-constant bounded array is illegal
Compiler error C2267 'function': static functions with block scope are illegal
Compiler error C2268 'function' is a compiler predefined library helper. Library helpers are not supported with /GL; compile object file 'filename' without /GL.
Compiler error C2269 cannot create a pointer or reference to a qualified function type (requires pointer-to-member)
Compiler error C2270 'function': modifiers not allowed on nonmember functions
Compiler error C2271 'function': new/delete cannot have formal list modifiers
Compiler error C2272 'function': modifiers not allowed on static member functions
Compiler error C2273 'type': illegal as right side of '->' operator
Compiler error C2274 'type': illegal as right side of '.' operator
Compiler error C2275 'type': illegal use of this type as an expression
Compiler error C2276 'operator': illegal operation on bound member function expression
Compiler error C2277 'function': cannot take address of this member function
Compiler error C2278 Obsolete.
Compiler error C2279 exception specification cannot appear in a typedef declaration
Compiler error C2280 'class::function': attempting to reference a deleted function
Compiler error C2281 'class::function': a function can only be deleted on the first declaration
Compiler error C2282 'function1' cannot override 'function2'
Compiler error C2283 'identifer': pure specifier or abstract override specifier not allowed on unnamed class/struct
Compiler error C2284 'function': illegal argument to intrinsic function, parameter number
Compiler error C2285 pointers to members representation has already been determined - pragma ignored
Compiler error C2286 pointers to members of 'identifier' representation is already set to inheritance - declaration ignored
Compiler error C2287 'identifier': inheritance representation: 'inheritiance' is less general than the required 'inheritance'
Compiler error C2288 Obsolete.
Compiler error C2289 same type qualifier used more than once
Compiler error C2290 C++ 'asm' syntax ignored. Use __asm.
Compiler error C2291 An anonymous namespace cannot be exported.
Compiler error C2292 'identifier': best case inheritance representation: inheritance1' declared but 'inheritance2' required
Compiler error C2293 'identifier': illegal to have a member variable as a __based specifier
Compiler error C2294 cannot export symbol 'identifier' because it has internal linkage
Compiler error C2295 escaped 'character': is illegal in macro definition
Compiler error C2296 'operator': illegal, left operand has type 'type'
Compiler error C2297 'operator': illegal, right operand has type 'type'
Compiler error C2298 missing call to bound pointer to member function
Compiler error C2299 'function': behavior change: an explicit specialization cannot be a copy constructor or copy assignment operator

See also

C/C++ Compiler and build tools errors and warnings
Compiler errors C2000 - C3999, C7000 - C7999