C1XX Errors

The table below, which is still in development (for accuracy as well as for completeness), lists the errors that the front-end C++ compiler (C1XX) is known to be capable of issuing in version 13.00.9466.

Error numbers that the product documentation does not list among the C/C++ Build Errors are highlighted yellow. For some, the code that can raise the error may turn out at closer inspection to be unreachable. That some errors are undocumented ought be no surprise. The compiler has undocumented features and, assuming that this is deliberate, it would be careless of Microsoft to let the documentation reveal an undocumented feature by listing the errors that can follow from misuse of that feature. For instance, since implementation_key is not documented as an argument for #pragma directives or __declspec modifiers, it is no surprise that errors C2330, C2366 and C2497 are also not documented.

Text for each error message is reproduced from the corresponding resource string in the executable, with placeholders resolved as much as possible in the style of the product documentation. It is as well to note that the message text given in the product documentation is in some cases different from (and in a handful of cases, is nothing like) any text that could possibly be resolved from the corresponding resource string.

Error C2338 is shown with four cases. This error, which Microsoft does not document, can be triggered externally. The message text in such case is essentially arbitrary, being supplied by the external component, and is shown here as its own placeholder. For the other cases, the error arises internally. The message text is not from a resource string but is hard-coded in the compiler’s data.

Error Message
C2001 newline in constant
C2002 invalid wide-character constant
C2003 expected 'defined id'
C2004 expected 'defined(id)'
C2005 #line expected a line number, found 'token'
C2006 'directive' : expected a filename, found 'token'
C2007 #define syntax
C2008 'character' : unexpected in macro definition
C2009 reuse of macro formal 'identifier'
C2010 'character' : unexpected in macro formal parameter list
C2011 'identifier' : 'type' type redefinition
C2012 missing name following '<'
C2013 missing '>'
C2014 preprocessor command must start as first nonwhite space
C2015 too many characters in constant
C2017 illegal escape sequence
C2018 unknown character '0xhexnumber'; unicode identifiers are not supported
C2019 expected preprocessor directive, found 'character'
C2020 'member' : 'class' member redefinition
C2021 expected exponent value, not 'character'
C2022 'number' : too big for character
C2026 string too big, trailing characters truncated
C2027 use of undefined type 'type'
C2028 struct/union member must be inside a struct/union
C2030 'identifier' : struct/union member redefinition
C2033 'identifier' : bit field cannot have indirection
C2034 'identifier' : type of bit field too small for number of bits
C2036 'identifier' : unknown size
C2039 'identifier1' : is not a member of 'identifier2'
C2040 'operator' : 'identifier1' differs in levels of indirection from 'identifier2'
C2041 illegal digit 'character' for base 'number'
C2042 signed/unsigned keywords mutually exclusive
C2043 illegal break
C2044 illegal continue
C2045 'identifier' : label redefined
C2046 illegal case
C2047 illegal default
C2048 more than one default
C2050 switch expression not integral
C2051 case expression not constant
C2052 'type' : illegal type for case expression
C2053 'identifier' : wide string mismatch
C2054 expected '(' to follow 'identifier'
C2055 expected formal parameter list, not a type list
C2056 illegal expression
C2057 expected constant expression
C2058 constant expression is not integral
C2059 syntax error : 'token'
C2060 syntax error : end of file found
C2061 syntax error : identifier 'identifier'
C2062 type 'type' unexpected
C2063 'identifier' : not a function
C2064 term does not evaluate to a function
C2065 'identifier' : undeclared identifier
C2066 cast to function type is illegal
C2067 cast to array type is illegal
C2068 illegal cast from '%s' to '%s'
C2069 cast of 'void' term to non-'void'
C2070 'type': illegal sizeof operand
C2071 'identifier' : illegal storage class
C2072 'identifier' : initialization of a function
C2073 'identifier' : partially initialized array requires a default constructor
C2074 'identifier' : 'class-key' initialization needs curly braces
C2075 'identifier' : array initialization needs curly braces
C2077 non-scalar field initializer 'identifier'
C2078 too many initializers
C2079 'identifier' uses undefined class-key 'name'
C2081 'identifier' : name in formal parameter list illegal
C2082 redefinition of formal parameter 'identifier'
C2083 class-key comparison illegal
C2084 function 'function' already has a body
C2085 'identifier' : not in formal parameter list
C2086 'identifier' : redefinition
C2087 'identifier' : missing subscript
C2088 'operator' : illegal for class-key
C2089 'identifier' : 'class-key' too large
C2090 function returns array
C2091 function returns function
C2092 'array name' array element type cannot be function
C2093 'variable1' : cannot be initialized using address of automatic variable 'variable2'
C2094 label 'identifier' was undefined
C2095 'function' : actual parameter has type 'void' : parameter number
C2097 illegal initialization
C2100 illegal indirection
C2101 'operator' on constant
C2102 'operator' requires l-value
C2103 'operator' on register variable
C2104 'operator' on bit field ignored
C2105 'operator' needs l-value
C2106 'operator' : left operand must be l-value
C2107 illegal index, indirection not allowed
C2108 subscript is not of integral type
C2109 subscript requires array or pointer type
C2110 'operator' : cannot add two pointers
C2111 'operator' : pointer addition requires integral operand
C2112 'operator' : pointer subtraction requires integral or pointer operand
C2113 'operator' : pointer can only be subtracted from another pointer
C2114 'operator' : pointer on left; needs integral value on right
C2115 'identifier' : incompatible types
C2116 function parameter lists differed
C2117 'identifier' : array bounds overflow
C2118 negative subscript or subscript is too large
C2120 'void' illegal with all types
C2121 '#' : invalid character : possibly the result of a macro expansion
C2122 'identifier' : prototype parameter in name list illegal
C2124 divide or mod by zero
C2125 'identifier' : allocation exceeds 64K
C2126 'operator' : incorrect operand
C2127 parameter allocation exceeds 32K
C2128 'function' : alloc_text/same_seg applicable only to functions with C linkage
C2129 static function 'function' declared but not defined
C2130 #line expected a string containing the filename, found 'token'
C2132 syntax error : unexpected identifier
C2133 'identifier' : unknown size
C2134 'identifier' : struct/union too large
C2135 'bit operator' : illegal bit field operation
C2136 'function' : prototype must have parameter types
C2137 empty character constant
C2143 syntax error : missing 'token1' before 'token2'
C2144 syntax error : 'type' should be preceded by 'token'
C2145 syntax error : missing 'token' before identifier
C2146 syntax error : missing 'token' before identifier 'identifier'
C2147 'identifier' : const automatic array must be fully initialized
C2148 array too large
C2149 'identifier' : named bit field cannot have zero width
C2150 'identifier' : bit field must have type 'int', 'signed int', or 'unsigned int'
C2151 more than one language attribute
C2152 'identifier' : pointers to functions with different attributes
C2153 hex constants must have at least one hex digit
C2154 'segment' : does not refer to a segment name
C2155 '?' : invalid left operand, expected arithmetic or pointer type
C2156 pragma must be outside function
C2157 'function' : must be declared before use in pragma list
C2158 '%$pS' : is a function
C2159 more than one storage class specified
C2160 '##' cannot occur at the beginning of a macro definition
C2161 '##' cannot occur at the end of a macro definition
C2162 expected macro formal parameter
C2163 'function' : not available as an intrinsic function
C2164 'function' : intrinsic function not declared
C2165 'keyword' : cannot modify pointers to data
C2166 l-value specifies const object
C2167 'function' : too many actual parameters for intrinsic function
C2168 'function' : too few actual parameters for intrinsic function
C2169 'function' : intrinsic function, cannot be defined
C2170 'identifier' : not declared as a function, cannot be intrinsic
C2171 'operator' : illegal on operands of type 'type'
C2172 'function' : actual parameter is not a pointer : parameter number
C2173 'function' : actual parameter is not a pointer : parameter number1, parameter list number2
C2174 'function' : actual parameter has type 'void' : parameter number1, parameter list number2
C2175 'locale' : invalid locale
C2177 constant too big
C2178 'identifier' : storage class for same_seg variables must be extern
C2179 'identifier' : was used in same_seg, but storage class is no longer extern
C2180 controlling expression has type 'void'
C2181 illegal else without matching if
C2182 'identifier' : illegal use of type 'void'
C2184 illegal return of a 'void' value
C2185 'identifier' : illegal based allocation
C2186 'operator' : illegal operand of type 'void'
C2188 'number' : too big for wide character
C2189 #error : string
C2190 first parameter list longer than second
C2191 second parameter list longer than first
C2192 parameter 'number' declaration different
C2193 'identifier' : already in a segment
C2194 'identifier' : is a text segment
C2195 'identifier' : is a data segment
C2196 case value 'value' already used
C2197 'function' : too many actual parameters
C2198 'function' : too few actual parameters
C2199 syntax error : found 'identifier (' at global scope (was a declaration intended?)
C2200 'function' : function has already been defined
C2201 'identifier' : must have external linkage in order to be exported/imported
C2203 delete operator cannot specify bounds for an array
C2204 'type' : type definition found within parentheses
C2205 'identifier' : cannot initialize extern variables with block scope
C2206 'function' : typedef cannot be used for function definition
C2207 'member' in struct/union 'tag' has a zero-sized array
C2208 'type' : no members defined using this type
C2212 'identifier' : __based not available for pointers to functions
C2213 'modifier' : illegal argument to __based
C2214 pointers based on 'void' require the use of :>
C2217 'attribute1' must be used with 'attribute2'
C2218 type in __based construct must be 'void'
C2219 syntax error : type qualifier must be after '*'
C2220 warning treated as error - no object file generated
C2221 '.' : left operand points to struct/union, use '->'
C2222 '->' : left operand has struct/union type, use '.'
C2223 left of '->identifier' must point to struct/union
C2224 left of '.identifier' must have struct/union type
C2226 syntax error : unexpected type 'type'
C2227 left of '->identifier' must point to class/struct/union
C2228 left of '.identifier' must have class/struct/union type
C2229 type 'identifier' has an illegal zero-sized array
C2230 'function' : a member function of a managed class cannot return a non-managed class or struct 'user-defined type' unless it is an aggregate
C2231 '.%$*' : left operand points to 'class-key', use '->'
C2232 '->%$*' : left operand has 'class-key' type, use '.'
C2233 'identifier' : arrays of objects containing zero-size arrays are illegal
C2234 'name' : arrays of references are illegal
C2236 unexpected 'class-key' 'identifier'
C2238 unexpected token(s) preceding 'token'
C2239 unexpected token 'token' following declaration of 'identifier'
C2241 'identifier' : member access is restricted
C2242 typedef name cannot follow class/struct/union
C2243 'conversion type' : conversion from 'type1' to 'type2' exists, but is inaccessible
C2244 'identifier' : unable to match function definition to an existing declaration
C2246 'identifier' : illegal static data member in locally defined class
C2247 'identifier' not accessible because 'class' uses 'specifier' to inherit from 'class'
C2248 'member' : cannot access access member declared in class 'class'
C2249 'member' : no accessible path to access member declared in virtual base 'class'
C2250 'identifier' : ambiguous inheritance of 'class::member'
C2252 Unable to explicitly instantiate template; try again at nearest namespace scope
C2253 'function' : pure specifier only applies to virtual function - specifier ignored
C2254 'function' : pure specifier not allowed on friend functions
C2255 'function' : a friend function can only be declared in a class
C2256 illegal use of friend specifier on 'function'
C2258 illegal pure syntax, must be '= 0'
C2259 'class' : cannot instantiate abstract class
C2262 'identifier' : cannot be destroyed
C2264 'function' : error in function definition or declaration; function not called
C2265 'identifier' : reference to a zero-sized array is illegal
C2266 'identifier' : reference to a non-constant bounded array is illegal
C2267 'function' : static functions with block scope are illegal
C2270 'function' : modifiers not allowed on nonmember functions
C2271 'operator' : new/delete cannot have formal list modifiers
C2272 'function' : modifiers not allowed on static member functions
C2273 'type' : illegal as right side of '->' operator
C2274 'type' : illegal as right side of '.' operator
C2275 'identifier' : illegal use of this type as an expression
C2276 'operator' : illegal operation on bound member function expression
C2277 'identifier' : cannot take address of this member function
C2280 missing '{' before identifier 'identifier'?
C2281 'identifier1' : is not a function, but contains <function returning>; 'identifier2' is unexpected
C2282 'identifier1' is followed by 'identifier2' (missing ','?)
C2283 'identifier' : pure specifier not allowed on unnamed class-key
C2285 pointers to members representation has already been determined - pragma ignored
C2286 pointers to members of 'identifier' representation is already set to inheritance - declaration ignored
C2287 'class': inheritance representation: 'representation1' is less general than the required 'representation2'
C2289 same type qualifier used more than once
C2290 C++ 'token' syntax ignored. Use __asm.
C2292 'identifier': best case inheritance representation: 'representation1' declared but 'representation2' required
C2293 'identifier': illegal to have a member variable as a __based specifier
C2294 'identifier': illegal argument to intrinsic function, parameter number
C2295 escaped 'character' : is illegal in macro definition
C2296 'operator' : illegal, left operand has type 'type'
C2297 'operator' : illegal, right operand has type 'type'
C2298 'operation' : illegal operation on pointer to member function expression
C2300 'identifier' : class does not have a destructor called '~identifier'
C2301 left of '->~identifier' must point to class/struct/union
C2302 left of '.~identifier' must have class/struct/union type
C2304 'type symbol' : unexpected tokens following type
C2305 'pdbfile' does not contain debugging information for this module
C2306 'pdbfile' does not contain the most recent debugging information for this module
C2307 pragma pragma must be moved outside of the function if incremental compilation is enabled
C2308 concatenating mismatched wide strings
C2309 catch handler expected a parenthesized exception declaration
C2310 catch handlers must specify one type
C2311 'exception' : is caught by '...' on line number
C2312 'exception1' : is caught by 'exception2' on line number
C2313 'type1' : is caught by reference ('type2') on line number
C2315 'type1' : reference is caught by 'type2' on line number
C2317 'try' block starting on line 'number' has no catch handlers
C2318 no try block associated with this catch handler
C2319 'try/catch' must be followed by a compound statement. Missing '{'
C2320 expected ':' to follow access specifier 'specifier'
C2321 syntax error : unexpected '%$S'
C2322 'identifier' : address of dllimport 'dllimport' is not static
C2323 compiler limit: out of local keys compiling function 'function'
C2324 'identifier' : unexpected to the right of 'name'
C2325 'type' : unexpected type to the right of 'name': expected 'type'
C2326 'declarator' : function cannot access 'name'
C2327 'symbol' : member from enclosing class is not a type name, static, or enumerator
C2328 'keyword' : keyword is not yet supported
C2330 'implementation_key( )' is only valid in a region bounded by #pragma start_map_region/stop_map_region
C2331 access to 'symbol' now defined to be 'access1', previously it was defined to be 'access2'
C2332 'typedef' : missing tag name
C2333 'function' : error in function declaration; skipping function body
C2334 unexpected token(s) preceding 'token'; skipping apparent function body
C2335 'symbol' : a type cannot be introduced in a function parameter list
C2337 'attribute name' : attribute not found; it is neither a built-in nor a custom attribute that is accessible in the current namespace
C2338 text
deprecated use of dynamic_cast: use __box instead to box a value type
'group': incorrect format for attribute 'group'
'usage': incorrect format for attribute 'usage'
C2339 'symbol' : illegal type in embedded-IDL
C2340 'argument' : illegal allocate specifier
C2341 'section name' : segment must be defined using #pragma data_seg, code_seg or section prior to use
C2343 'section name' : conflicting section attributes
C2344 align(#) : alignment must be power of two
C2345 align(value) : illegal alignment value
C2347 '__w64' : can not be used with type 'type'
C2348 'type name' : is not a C-style aggregate, cannot be exported in embedded-IDL
C2350 'identifier' is not a static member
C2351 obsolete C++ constructor initialization syntax
C2352 'class::function' : illegal call of non-static member function
C2354 'reference' : initialization of reference member requires a temporary variable
C2355 'this' : can only be referenced inside non-static member functions
C2356 initialization segment must not change during translation unit
C2357 'identifier' : must be a function of type 'type'
C2359 'symbol' : member of non-class type requires single initializer expression
C2360 initialization of 'identifier' is skipped by 'case' label
C2361 initialization of 'identifier' is skipped by 'default' label
C2362 initialization of 'identifier' is skipped by 'goto label'
C2363 cannot evaluate argument 'arg' of custom attribute 'custom attribute'
C2364 'type': illegal type for custom attribute
C2365 'class member' : redefinition; previous definition was a 'class member'
C2366 'identifier' : redefinition; different implementation_key specifiers
C2368 'identifier' : redefinition; different allocation specifiers
C2369 'array' : redefinition; different subscripts
C2370 'identifier' : redefinition; different storage class
C2371 'identifier' : redefinition; different basic types
C2372 'identifier' : redefinition; different types of indirection
C2373 'identifier' : redefinition; different type modifiers
C2374 'identifier' : redefinition; multiple initialization
C2375 'function' : redefinition; different linkage
C2376 'function' : redefinition; different based allocation
C2377 'identifier' : redefinition; typedef cannot be overloaded with any other symbol
C2378 'identifier' : redefinition; symbol cannot be overloaded with a typedef
C2379 formal parameter %d has different type when promoted
C2380 type(s) preceding 'identifier' (constructor with return type, or illegal redefinition of current class-name?)
C2381 'function' : redefinition; __declspec(noreturn) differs
C2385 ambiguous access of 'member' in 'class'
C2390 'identifier' : incorrect storage class 'specifier'
C2391 'identifier' : 'friend' cannot be used during type definition
C2392 'method' : covariant returns types are not supported in managed types
C2398 'name' is not yet implemented
C2400 inline assembler syntax error in 'context'; found 'token'
C2401 'identifier' : register must be base in 'context'
C2402 'identifier' : register must be index in 'context'
C2403 'identifier' : register must be base/index in 'context'
C2404 'identifier' : illegal register in 'context'
C2405 illegal short forward reference with offset
C2406 'identifier' : name undefined in 'context'
C2407 illegal 'float' register in 'context'
C2408 illegal type on PTR operator in 'context'
C2409 illegal type used as operator in 'context'
C2410 'identifier' : ambiguous member name in 'context'
C2411 'identifier' : illegal struct/union member in 'context'
C2412 'label' : case-insensitive label redefined
C2413 'token' : illegal align size
C2414 illegal number of operands
C2415 improper operand type
C2416 'identifier' : illegal opcode for processor
C2417 divide by zero in 'context'
C2418 cannot delete browser file: filename
C2419 mod by zero in 'context'
C2420 'identifier' : illegal symbol in context
C2421 PTR operator used with register in 'context'
C2422 illegal segment override in 'operand'
C2423 'number' : illegal scale
C2424 'token' : improper expression in 'context'
C2425 'token' : non-constant expression in 'context'
C2426 'token' : illegal operator in 'context'
C2428 'operation' : not allowed on operand of type 'bool'
C2429 'label' : illegal far label reference
C2430 more than one index register in 'identifier'
C2431 illegal index register in 'identifier'
C2432 illegal reference to 16-bit data in 'identifier'
C2433 'identifier' : 'modifier' not permitted on data declarations
C2436 'identifier' : member function or nested class in constructor initializer list
C2437 'identifier' : already initialized
C2438 'identifier' : cannot initialize static class data via constructor
C2439 'identifier' : member could not be initialized
C2440 'conversion' : cannot convert from 'type1' to 'type2'
C2443 operand size conflict
C2444 'identifier' : used ANSI prototype, found 'type', expected '{' or ';'
C2446 'operator' : no conversion from 'type1' to 'type2'
C2447 'token' : missing function header (old-style formal list?)
C2448 'identifier' : function-style initializer appears to be a function definition
C2449 found '{' at file scope (missing function header?)
C2450 switch expression of type 'type' is illegal
C2451 conditional expression of type 'type' is illegal
C2454 improper operand type for processor
C2455 improper operand type in instruction
C2456 illegal opcode for processor
C2457 'macro': predefined macro cannot appear outside of a function body
C2458 'identifier' : redefinition within definition
C2459 'identifier' : is being defined; cannot add as an anonymous member
C2460 'identifier1' : uses 'identifier2', which is being defined
C2461 'class' : constructor syntax missing formal parameters
C2462 'identifier' : cannot define a type in a 'new-expression'
C2463 cannot define an anonymous type in a 'new-expression'
C2464 'identifier' : cannot use 'new' to allocate a reference
C2465 cannot define an anonymous type inside parentheses
C2466 cannot allocate an array of constant size 0
C2467 illegal declaration of anonymous 'user-defined type'
C2468 'new' : cannot allocate 'const'/'volatile' objects (type is 'type')
C2469 'new' : cannot allocate 'void' objects
C2470 'function' : looks like a function definition, but there is no formal parameter list; skipping apparent body
C2471 cannot update program database 'file'
C2475 'member_name' : forming a pointer-to-member requires explicit use of the address-of operator ('&') and a qualified name
C2476 empty initializer list is not allowed
C2479 'identifier' : 'allocate( )' is only valid for data items of static extent
C2480 'identifier' : 'thread' is only valid for data items of static extent
C2482 'identifier' : dynamic initialization of 'thread' data not allowed
C2483 'identifier' : object with constructor cannot be declared 'thread'
C2485 'identifier' : unrecognized extended attribute
C2486 '__LOCAL_SIZE' only allowed in function with the 'naked' attribute
C2487 'identifier' : member of dll interface class may not be declared with dll interface
C2488 'identifier' : 'naked' can only be applied to non-member function definitions
C2489 'identifier' : initialized auto or register variable not allowed at function scope in 'naked' function
C2490 'keyword' not allowed in function with 'naked' attribute
C2491 'identifier' : definition of dllimport function not allowed
C2492 'variable' : 'thread' data may not have dll interface
C2493 illegal form of __based
C2494 'keyword' cannot be called from within a filter expression or __finally block
C2495 'identifier' : 'nothrow' can only be applied to function declarations or definitions
C2496 'identifier' : 'selectany' can only be applied to data items with external linkage
C2497 'identifier' : 'implementation_key' can only be applied to function declarations
C2498 'function' : 'novtable' can only be applied to class declarations or definitions
C2499 'class' : a class cannot be its own base class
C2500 'identifier1' : 'identifier2' is already a direct base class
C2501 'identifier' : missing storage-class or type specifiers
C2502 'identifier' : too many access modifiers on the base class
C2503 'class' : base classes cannot contain zero-sized arrays
C2504 'class' : base class undefined
C2507 'identifier' : too many virtual modifiers on the base class
C2509 'identifier' : member function not declared in 'class'
C2510 'identifier' : left of '::' must be a class/struct/union
C2511 'identifier' : overloaded member function not found in 'class'
C2512 'identifier' : no appropriate default constructor available
C2513 'type' : no variable declared before '='
C2514 'class' : class has no constructors
C2515 'identifier' : not in class 'class'
C2516 'name' : is not a legal base class
C2517 'identifier' : right of '::' is undefined
C2518 keyword 'keyword' illegal in base class list; ignored
C2519 cannot convert 'Type1 *' to 'Type2 *'
C2520 'symbol' : no non-explicit constructor available for implicit conversion
C2521 destructors do not take arguments
C2522 'name' : cannot be constructed because it cannot be destroyed in this context
C2523 'class::~identifier' : destructor tag mismatch
C2524 'destructor' : destructors must have a 'void' parameter list
C2526 'identifier1' : C linkage function cannot return C++ class 'identifier2'
C2528 'name' : pointer to reference is illegal
C2529 'name' : reference to reference is illegal
C2530 'identifier' : references must be initialized
C2531 'identifier' : reference to a bit field illegal
C2532 'identifier' : illegal modifier for reference
C2533 'identifier' : constructors not allowed a return type
C2534 'identifier' : constructor cannot return a value
C2535 'identifier' : member function already defined or declared
C2536 'class::identifier' : cannot specify explicit initializer for arrays
C2537 'specifier' : illegal linkage specification
C2538 new : cannot specify initializer for arrays
C2539 new : 'class' no default constructor to initialize arrays of objects
C2540 non-constant expression as array bound
C2541 'operator' : cannot delete objects that are not pointers
C2542 'identifier' : class object has no constructor for initialization
C2543 expected ']' for operator '[]'
C2544 expected ')' for operator '()'
C2545 'operator' : unable to find overloaded operator
C2548 'class::member' : missing default parameter for parameter parameter
C2549 user-defined conversion cannot specify a return type
C2550 'identifier' : constructor initializer lists are only allowed on constructor definitions
C2551 'void *' type needs explicit cast
C2552 'identifier' : non-aggregates cannot be initialized with initializer list
C2553 no legal conversion of return value to return type 'type'
C2554 'name' : __based is illegal on references to functions
C2555 'class1::function1': overriding virtual function return type differs and is not covariant from 'class2::function2'
C2556 'function1' : overloaded function differs only by return type from 'function2'
C2557 'identifier' : private and protected members cannot be initialized without a constructor
C2558 class-key 'identifier' : no copy constructor available or copy constructor is declared 'explicit'
C2559 'identifier' : no match for specified operator
C2561 'identifier' : function must return a value
C2562 'identifier' : 'void' function returning a value
C2563 mismatch in formal parameter list
C2564 'type' : a function-style conversion to a built-in type can only take one argument
C2566 overloaded function in conditional expression
C2568 'identifier1' : unable to resolve function overload
C2569 'EnumOrUnion' : enum/union cannot be used as a base class
C2570 'identifier' : union cannot have base classes
C2571 'function' : virtual function cannot be in union 'union'
C2572 'class::member' : redefinition of default parameter : parameter param
C2573 'class' : cannot delete pointers to objects of this type; the class has no non-placement overload for 'operator delete'.
Use ::delete, or add 'operator delete(void*)' to the class
C2574 'destructor' : constructors and destructors cannot be declared static
C2575 'identifier' : only member functions and bases can be virtual
C2576 'identifier' : virtual member functions cannot be static
C2577 'destructor' : destructor cannot return a value
C2578 'class::function' : static member function cannot hide interface method
C2579 'class::function(params)' : parameter list not sufficiently different from 'class::function(params)'
C2580 redefinition of class name 'identifier'
C2581 'identifier' : static 'operator =' function is illegal
C2582 'operator token' function is unavailable in 'class'
C2583 'identifier' : 'const/volatile' 'this' pointer is illegal for constructors/destructors
C2584 'Class' : direct base 'Base2' is inaccessible; already a base of 'Base1'
C2585 explicit conversion to 'type' is ambiguous
C2586 incorrect user-defined conversion syntax : illegal indirections
C2587 'identifier' : illegal use of local variable as default parameter
C2588 '::~identifier' : illegal global destructor
C2589 'identifier' : illegal token on right side of '::'
C2590 'identifier' : ambiguous user-defined conversions in switch expression
C2591 'identifier' : ambiguous user-defined conversions in conditional expression
C2592 no legal conversion of initialization expression to type 'type'
C2593 'operator identifier' is ambiguous
C2594 'operator' : ambiguous conversions from 'type1' to 'type2'
C2595 'identifier' : qualified name already has a constructor
C2596 'identifier' : qualified name already has a destructor
C2597 illegal reference to non-static member 'identifier'
C2598 linkage specification must be at global scope
C2599 'function' : local class member functions must be defined within the class
C2600 'function' : cannot define a compiler-generated special member function (must be declared in the class first)
C2601 'function' : local function definitions are illegal
C2602 'class::identifier' is not a member of a base class of 'class'
C2603 'function' : Too many block scope static objects with constructor/destructors in function
C2610 class-key 'class' can never be instantiated; user-defined constructor is required
C2611 'token' : illegal following '~' (expected identifier)
C2612 trailing 'char' illegal in base/member initializer list
C2613 trailing 'token' illegal in base class list
C2614 'class1' : illegal member initialization: 'class2' is not a base or member
C2616 'conversion' : cannot implicitly convert a non-lvalue 'type1' to a 'type2' that is not const
C2617 'function' : inconsistent return statement
C2619 union 'union' : cannot have static member variable 'identifier'
C2620 member 'identifier' of union 'union' has user-defined constructor or non-trivial default constructor
C2621 member 'identifier' of union 'union' has copy constructor
C2622 member 'identifier' of union 'union' has assignment operator
C2623 member 'identifier' of union 'union' has destructor
C2624 'symbol' : local classes cannot be used to declare 'extern' variables
C2625 anonymous union did not declare any data members
C2626 anonymous union defines protected/private member 'identifier'
C2627 'identifier' : member function defined in unnamed class
C2628 'type1' followed by 'type2' is illegal (did you forget a ';'?)
C2629 unexpected 'token ('
C2630 'symbol' found in what should be a comma-separated list
C2632 'type1' followed by 'type2' is illegal
C2633 'identifier' : 'inline' is the only legal storage class for constructors
C2634 '&class::member' : pointer to reference member is illegal
C2635 cannot convert a 'identifier1*' to a 'identifier2*'; conversion from a virtual base class is implied
C2636 'identifier' : pointer to reference member is illegal
C2637 'identifier' : cannot modify pointers to data members
C2638 'identifier' : __based modifier illegal on pointer to member
C2639 compiler generated object required by unnamed class
C2640 'identifier' : __based modifier illegal on reference
C2645 no qualified name for pointer to member (found ':: *')
C2646 global anonymous unions must be declared static
C2647 'operator' : cannot dereference a 'type1' on a 'type2'
C2648 'identifier' : use of member as default parameter requires static member
C2649 'identifier' : is not a 'class-key'
C2650 'operator' : cannot be a virtual function
C2651 'data type' : left of '::' must be a class, struct or union
C2652 'identifier' : illegal copy constructor: first parameter must not be a 'identifier'
C2653 'identifier' : is not a class or namespace name
C2654 'identifier' : attempt to access member outside a member function
C2655 'identifier' : definition or redeclaration illegal in current scope
C2656 'function' : function not allowed as a bit field
C2657 'class::*' found at the start of a statement (did you forget to specify a type?)
C2658 'member': redefinition in anonymous struct/union
C2659 'operator' : overloaded function as left operand
C2660 'function' : function does not take number parameters
C2661 'function' : no overloaded function takes number parameters
C2662 'function' : cannot convert 'this' pointer from 'type1' to 'type2'
C2663 'function' : number overloads have no legal conversion for 'this' pointer
C2664 'function' : cannot convert parameter number from 'type1' to 'type2'
C2665 'function' : none of the number1 overloads can convert parameter number2 from type 'type'
C2666 'identifier' : number overloads have similar conversions
C2667 'function' : none of number overloads have a best conversion
C2668 'function' : ambiguous call to overloaded function
C2669 member function not allowed in anonymous union
C2670 'identifier' : the template function cannot convert parameter number from type 'type'
C2671 'function' : static member functions do not have 'this' pointers
C2673 'function' : global functions do not have 'this' pointers
C2675 unary 'operator' : 'type' does not define this operator or a conversion to a type acceptable to the predefined operator
C2676 binary 'operator' : 'type' does not define this operator or a conversion to a type acceptable to the predefined operator
C2677 binary 'operator' : no global operator found which takes type 'type' (or there is no acceptable conversion)
C2678 binary 'operator' : no operator found which takes a left-hand operand of type 'type' (or there is no acceptable conversion)
C2679 binary 'operator' : no operator found which takes a right-hand operand of type 'type' (or there is no acceptable conversion)
C2680 'type' : invalid target type for name
C2681 'type' : invalid expression type for name
C2682 cannot use name to convert from 'type1' to 'type2'
C2683 token : 'type' is not a polymorphic type
C2686 cannot overload static and non-static member functions with the same parameter types
C2687 cannot define a nested UDT of a template class out of line
C2688 'function' : covariant returns with multiple or virtual inheritance not supported for varargs functions
C2689 Initializing 'variable' : this form of non-aggregate initialization requires a unary constructor
C2690 'operator' : cannot perform pointer arithmetic on a __gc array
C2691 'data type' : invalid type for __gc array element
C2692 'function_name' : fully prototyped functions required in C compiler with the '/clr' option
C2693 'operator' : illegal comparison for references to a __gc array
C2695 'function1': overriding virtual function differs from 'function2' only by calling convention
C2696 Cannot create a temporary object of a managed type 'type'
C2697 'array' : must explicitly specify __gc or __nogc for an array declared in a managed type
C2698 the using-declaration for 'declaration 1' cannot co-exist with the existing using-declaration for 'declaration 2'
C2700 'identifier' : cannot be thrown (use /W4 for more info)
C2702  __except may not appear in termination block
C2703 illegal __leave statement
C2704 'identifier' : __va_start intrinsic only allowed in varargs
C2705 'label' : illegal jump into 'exception handler block' scope
C2706 illegal __except without matching __try (missing '}' in __try block?)
C2707 'identifier' : bad context for intrinsic function
C2708 'identifier' : actual parameters length in bytes differs from previous call or reference
C2709 'identifier' : formal parameters length in bytes differs from previous declaration
C2712 Cannot use __try in functions that require object unwinding
C2713 Only one form of exception handling permitted per function
C2714 'function' : function with inline assembly or '_setjmp' is not allowed to have managed EH constructs
C2715 'pointer' : unable to throw or catch an interior __gc pointer or a value type
C2716 'operator new' allocates value types on the C++ heap; use '__nogc new type'
C2717 '__nogc new' cannot be used to create a managed type object
C2718 'parameter': actual parameter with __declspec(align('#')) won't be aligned
C2719 'parameter': formal parameter with __declspec(align('#')) won't be aligned
C2720 'identifier' : 'specifier' storage-class specifier illegal on members
C2721 'specifier' : storage-class specifier illegal between operator keyword and type
C2722 '::operator' : illegal following operator command; use 'operator operator'
C2723 'function' : 'specifier' storage-class specifier illegal on function definition
C2724 'identifier' : 'static' should not be used on member functions defined at file scope
C2726 '__gc new' cannot be used to create a non-managed type object
C2727 cannot create non __gc array 'array' because type 'typename' contains members with type __gc *
C2728 cannot create non __gc array 'array' of type 'type'
C2730 'class' : cannot be a base class of itself
C2731 'identifier' : function cannot be overloaded
C2732 linkage specification contradicts earlier specification for 'function'
C2733 second C linkage of overloaded function 'function' not allowed
C2734 'identifier' : const object must be initialized if not extern
C2735 'keyword' keyword is not permitted in formal parameter type specifier
C2736 'keyword' keyword is not permitted in cast
C2737 'class1' : base class 'class2' must be exported
C2745 'token' : this token cannot be converted to an identifier
C2750 'operator' : 'type1' to 'type2'
C2751 'parameter' : the name of a function parameter cannot be qualified
C2757 'symbol' : a symbol with this name already exists and therefore this name cannot be used as a namespace name
C2758 'const' : must be initialized in constructor base/member initializer list
C2760 syntax error : expected 'name1' not 'name2'
C2761 'function' : member function redeclaration not allowed
C2762 'class' : invalid expression as a template argument for 'argument'
C2763 'class' : invalid use of a string literal as a template argument for 'argument'
C2764 'parameter' : illegal use of template type-parameter
C2765 'filename' : cannot open binary header at this point
C2767 'function' : the template argument for 'argument' cannot be deduced
C2768 'function' : explicit template arguments were not expected to be associated with this declaration
C2769 'function' : deduced template arguments do not match explicit template arguments
C2771 #import only permitted at global or namespace scope
C2774 'identifier' : no 'put' method is associated with this property
C2775 'identifier' : no 'get' method is associated with this property
C2776 only one 'get' method can be specified per property
C2777 only one 'put' method can be specified per property
C2778 improperly formed GUID in __declspec(uuid())
C2779 'declaration' : property methods can only be associated with non-static data members
C2780 'declaration' : expects value1 arguments - value2 provided
C2781 'declaration' : expects at least value1 argument - value2 provided
C2782 'declaration' : template parameter 'identifier' is ambiguous
C2783 'declaration' : could not deduce template argument for 'identifier'
C2784 'declaration' : could not deduce template argument for 'type' from 'type'
C2785 'declaration1' and 'declaration2' have different return types
C2786 'type' : invalid operand for __uuidof
C2787 'identifier' : no GUID has been associated with this object
C2788 'identifier' : more than one GUID associated with this object
C2790 'super' : this keyword can only be used within the body of class member function
C2791 illegal use of 'super': 'class' does not have any base classes
C2792 'super' : this keyword must be followed by '::'
C2793 'token' : unexpected token following '::', identifier or keyword 'operator' expected
C2794 'function' : is not a member of any direct or indirect base class of 'class'
C2795 'super::function' is not a member function
C2798 'super::member' is ambiguous
C2800 'operator operator' cannot be overloaded
C2801 'operator operator' must be a non-static member
C2802 static member 'operator operator' has no formal parameters
C2803 'operator operator' must have at least one formal parameter of class type
C2804 binary 'operator operator' has too many parameters
C2805 binary 'operator operator' has too few parameters
C2806 'operator operator' has too many formal parameters
C2807 the second formal parameter to postfix 'operator operator' must be 'int'
C2808 unary 'operator operator' has too many formal parameters
C2809 'operator operator' has no formal parameters
C2810 'interface' : an interface can only inherit from another interface
C2811 'identifier' : a __gc class can only inherit from a __gc class or from a __gc interface
C2812 'identifier' : a __gc class or a __gc interface can only be inherited from a __gc class or a __gc interface
C2814 'member' defined inside managed 'type', must explicitly specify __gc, __nogc or __value
C2815 'operator delete' : first formal parameter must be 'void *', but 'param' was used
C2817 return type for 'operator delete' must be 'void'
C2818 application of overloaded 'operator ->' is recursive through type 'type'
C2819 type 'type' does not have an overloaded member 'operator ->'
C2821 first formal parameter to 'operator new' must be 'size_t'
C2823 a typedef template is illegal
C2824 return type for 'operator new' must be 'void *'
C2825 'class::member': cannot form a qualified name
C2826 'operator' must be declared static
C2827 'operator operator' cannot be globally overridden with unary form
C2828 'operator operator' cannot be globally overridden with binary form
C2829 'operator operator' cannot have a variable parameter list
C2830 only placement parameters to 'operator new' can have default values
C2831 'operator operator' cannot have default parameters
C2833 'operator operator' is not a recognized operator or type
C2834 'operator operator' must be globally qualified
C2835 user-defined conversion 'type' takes no formal parameters
C2837 'identifier' : illegal local static variable in exported inline function
C2838 'member' : illegal qualified name in member declaration
C2839 invalid return type 'type' for overloaded 'operator ->'
C2841 'function' : invalid template function declaration
C2842 'class' : a managed type may not define its own 'operator new' or 'operator delete'
C2843 'member' : cannot take the address of a non-static data member or method of a managed type
C2844 'member' : cannot be a member of interface 'interface'
C2845 'operator' : cannot perform pointer arithmetic on __gc pointer 'type'
C2846 'constructor' : an interface cannot have a constructor
C2847 cannot apply sizeof to managed type 'class'
C2848 'member' : a managed type cannot be a member of a union
C2849 'destructor' : an interface cannot have a destructor
C2850 'construct' : only allowed at file scope; may not be in a nested construct
C2854 syntax error in #pragma hdrstop
C2855 command-line option 'option' inconsistent with precompiled header
C2856 #pragma hdrstop cannot be inside an #if block
C2857 '#include' statement specified with the /Ycfilename command-line option was not found in the source file
C2858 command-line option 'option1 (option2)' inconsistent with precompiled header, which used 'option3'
C2859 filename is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.
C2860 'void' cannot be an argument type, except for '(void)'
C2861 'function name' : an interface member function cannot be defined
C2862 'interface' : an interface can only have public members
C2863 'interface' : an interface cannot have friends
C2864 'variable' : only const static integral data members can be initialized inside a class or struct
C2865 'function' : illegal comparison for references to __gc class 'class'
C2866 'variable' : const static data members of a managed type must be initialized at their declarations
C2867 'identifier' : is not a namespace
C2868 'identifier' : illegal syntax for using-declaration; expected qualified-name
C2869 'name' : has already been defined to be a namespace
C2870 'name' : a namespace definition must appear either at file scope or immediately within another namespace definition
C2871 'name' : a namespace with this name does not exist
C2872 'symbol' : ambiguous symbol
C2873 'symbol' : symbol cannot be used in a using-declaration
C2874 using-declaration causes a multiple declaration of 'symbol'
C2875 using-declaration causes a multiple declaration of 'class::identifier'
C2876 'class::symbol' : not all overloads are accessible
C2877 'symbol' is not accessible from 'class'
C2878 'name' : a namespace or class of this name does not exist
C2879 'symbol' : only an existing namespace can be given an alternative name by a namespace alias definition
C2880 'symbol' : a symbol with this name already exists in the current scope
C2881 'namespace1' : is already used as an alias for 'namespace2'
C2882 'name' : illegal use of namespace identifier in expression
C2883 'name' : local function declaration conflicts with 'identifier' introduced by using-declaration
C2884 'name' : introduced by using-declaration conflicts with local function 'function'
C2885 'class::identifier' : a using-declaration as a member of a class must be a member-declaration
C2886 'class::identifier' : symbol cannot be used in a member using-declaration
C2887 'class::identifier' : symbol cannot be used in a member using-declaration
C2888 'identifier' : symbol cannot be defined within namespace 'namespace'
C2889 'identifier' : a gc type cannot be a virtual base class
C2890 'class' : a __gc class can only have one non-interface base class
C2891 'identifier' : cannot take the address of a template parameter
C2892 'statement' : reference template parameters are not supported
C2893 Failed to specialize function template 'template name'
C2894 templates cannot be declared to have 'C' linkage
C2895 'function' : cannot explicitly instantiate a function template that has been declared with dllimport
C2896 'function1' : cannot use function template 'function2' as a function argument
C2897 'declaration' : destructors cannot be templates
C2898 'declaration' : member function templates cannot be virtual
C2899 typename cannot be used outside a template declaration
C2901 'declaration1' : function differs from 'declaration2' only by return type or calling convention
C2902 'token' : unexpected token following 'template', identifier expected
C2903 'identifier' : symbol is neither a class template nor a function template
C2904 'identifier' : template-name already defined as 'declaration'
C2906 C++ language change: to explicitly specialize class template 'identifier' use the following syntax -
C2907 explicit specialization; 'declaration' is not a member of a class template
C2908 explicit specialization; 'template' has already been instantiated from the primary template
C2909 'identifier': explicit instantiation of template function requires return type
C2911 cannot define p-code function with more than 255 bytes of parameters
C2912 explicit specialization; 'declaration' is not a function template
C2913 explicit specialization; 'declaration' is not a class template
C2914 'identifier' : cannot deduce template argument as function argument is ambiguous
C2917 'name' : invalid template-parameter
C2918 'name' : illegal use of local type in template instantiation
C2919 illegal use of anonymous local type in template instantiation
C2920 redefinition : 'class' : template class has already been declared as 'identifier'
C2921 redefinition : 'class' : template class is being redeclared as 'identifier'
C2922 'symbol' : a friend function of a template class must have been previously declared
C2923 'type' : 'identifier' is invalid as template argument '#number', type expected
C2926 'type' : types with no linkage cannot be used as template arguments
C2927 'function' : a template function must be called with at least one argument
C2928 explicit instantiation; 'identifier' is not a function or static data member of template-class 'class'
C2929 'identifier' : explicit instantiation; cannot explicitly force and suppress instantiation of template-class member
C2930 'class' : template-class-id redefined as an enumerate of 'enum identifier'
C2931 'class' : template-class-id redefined as a member function of 'identifier'
C2932 'class' : template-class-id redefined as a data member of 'identifier'
C2933 'class' : template-class-id redefined as a typedef member of 'identifier'
C2934 'class' : template-class-id redefined as a nested 'item' of 'identifier'
C2935 'class' : template-class-id redefined as a global function
C2936 'class' : template-class-id redefined as a global data variable
C2937 'class' : template-class-id redefined as a global typedef
C2938 'class' : template-class-id redefined as a global 'item'
C2939 'class' : template-class-id redefined as a local data variable
C2940 'class' : template-class-id redefined as a local typedef
C2941 'class' : template-class-id redefined as a local 'item'
C2942 'class' : template-class-id redefined as a formal argument of a function
C2943 'class' : template-class-id redefined as a type argument of a template
C2944 'class' : template-class-id redefined as a value argument of a template
C2945 explicit instantiation does not refer to a template-class specialization
C2946 explicit instantiation; 'class' is not a template-class specialization
C2947 expecting '>' to terminate construct, found 'syntax'
C2948 explicit instantiation; storage class specifier 'specifier' not permitted on specialization
C2949 'symbol' : explicit instantiation; cannot use 'auto' and 'extern' on the same template-class specialization
C2951 template declarations are only permitted at global or namespace scope
C2953 'identifier' : template class has already been defined
C2954 template definitions cannot nest
C2955 'identifier' : use of class template requires template argument list
C2958 the left delimiter found at 'file(line)' was not matched correctly
C2961 syntax error : 'token' : unexpected token in template declaration
C2962 syntax error : 'token' : expected template-class member function definition to end with '}'
C2963 string literals are not permitted as parameter to a template specialization
C2964 invalid expression as template parameter
C2965 'identifier' : invalid overloading of static data member for template class 'class'
C2966 'identifier' : adding member function of same name as existing static data member for template class 'class'
C2967 'identifier' : adding static data member of same name as existing member function for template class 'class'
C2968 'identifier' : user specialization of template class has an incomplete definition : expected '}' but found 'symbol'
C2969 syntax error : 'symbol' : expected member function definition to end with '}'
C2970 'class' : template argument 'parameter' : invalid use of non-integral-constant static variable 'var' as non-type argument
C2971 'class' : template argument 'parameter' : invalid use of local variable 'variable' as non-type argument
C2972 'class' : template argument 'number' : 'token' is not a valid template argument
C2973 'class' : invalid template argument 'number'
C2974 'class' : invalid template argument for 'identifier', type expected
C2975 'class' : invalid template argument for 'identifier', constant expression expected
C2976 'identifier' : too few template arguments
C2977 'identifier' : too many template arguments
C2980 unexpected token in template declaration
C2982 'identifier' : new template parameter list has fewer parameters than the previous declaration
C2983 'identifier' : new template parameter list has more parameters than the previous declaration
C2984 'identifier' : template parameters 'argument1' and 'argument2' do not match
C2985 'identifier' : invalid static data member; template class 'class' already has a function member of the same name
C2986 'identifier' : invalid function member; template class 'class' already has a static data member of the same name
C2987 'identifier' : redefinition; type mismatch for static data member of template class 'class'
C2988 unrecognizable template declaration/definition
C2989 'class' : template class has already been defined as a non-template class
C2990 'class' : non-template class has already been defined as a template class
C2991 redefinition of template parameter 'parameter'
C2992 'class' : invalid or missing template parameter list
C2993 'identifier' : illegal type for non-type template parameter 'parameter'
C2994 unnamed class in template parameter list
C2995 'function' : template function has already been defined
C2996 'function' : recursive template function definition
C2998 'identifier' : cannot be a template definition
C3102 'argument_value' : a 'positional' argument cannot follow a 'named' argument
C3104 'parameter_name' : illegal argument for attribute 'attribute_name'
C3107 'parameter' : already seen this property argument
C3108 'attribute' : this attribute may not be used in a managed context
C3109 'identifier' : interface methods must use either the '__stdcall' or '__cdecl' calling convention
C3110 'function_name' : you cannot overload a COM interface method
C3111 'dual' interface 'interface1', cannot inherit from 'custom' interface 'interface2'
C3112 'interface' : an interface can only be declared at global or namespace scope
C3113 an 'structure' cannot be a template
C3114 invalid use of __member_offset
C3115 invalid use of __current_class
C3116 'storage specifier' : invalid storage class for interface method
C3117 'interface' : an interface can only have one base class
C3118 'interface' : interfaces do not support virtual inheritance
C3119 cannot have multiple 'module' attributes with different uuid's
C3120 'method_name' : interface methods cannot take a variable argument list
C3121 cannot change GUID for class 'class_name'
C3122 'property' : a parameterized property must have at least one argument
C3123 runtime DLL mscoree.dll is not found on system
C3124 Error loading runtime DLL mscoree.dll
C3125 Error unloading runtime DLL mscoree.dll
C3126 cannot define a union 'union' inside of managed type 'type'
C3127 'attribute_name' : you cannot use this attribute in conjunction with attribute 'attribute_name'
C3128 'function_name' : 'attribute_parameter' method name does not match previously specified method name, 'function_name'
C3129 The compiler cannot automatically generate a 'method' method if there is no storage specified
C3130 Internal Compiler Error: failed to write injected code block to PDB
C3131 project must have a 'module' attribute with a 'name' property
C3133 'attribute_name(s)' : these attributes are only used within the context of a COM interface
C3134 'value' : value of attribute argument '%s.%s' does not have valid type 'type'
C3135 'property' : a property cannot have a 'const' or 'volatile' type
C3136 'interface' : a COM interface can only inherit from another COM interface, 'interface' is not a COM interface
C3137 'property' : a property cannot be initialized
C3138 'interface' : a 'attribute' interface must inherit from IDispatch, or from an interface that inherits from IDispatch
C3139 'struct' : cannot export a UDT without members
C3140 cannot have multiple 'module' attributes in the same compilation unit
C3141 'interface_name' : interfaces only support public inheritance
C3142 'property_name' : you cannot take the address of a property
C3143 '%s.%s' : attribute argument cannot have multiple values
C3144 '%s' : attribute requires explicit arguments, '%s' is unnamed
C3145 'object' : cannot declare a global or static managed type object or a __gc pointer
C3146 illegal __nogc reference to managed type 'type'
C3147 illegal __nogc with multi-dimensional __gc array
C3148 illegal __nogc pointer to managed type 'type'
C3149 'class' : illegal use of managed type '%$S'; did you forget a '*'?
C3150 'element' : 'attribute' can only be applied to a class, struct, interface, array or pointer
C3151 'keyword' cannot be applied to a template
C3152 'element' : 'attribute' can only be applied to a class or struct
C3153 'interface' : you cannot create an instance of an interface
C3154 'attribute' : illegal usage of attribute
C3156 'class' : you cannot have a local definition of a managed type
C3158 'type' : virtual destructors on value types are not allowed
C3159 'pointer' : array of pointers to value type cannot be declared
C3160 'pointer' : cannot declare interior __gc pointer or reference as a member of 'class'
C3161 'interface' : nesting class, struct, union or interface in an interface is illegal; nesting interface in a class struct or union is illegal
C3162 'pointers' : __gc pointers to interior __gc pointers cannot be declared
C3163 attribute specification must precede type declaration
C3164 'member': Copy constructors and destructors on value types are not supported
C3165 '%s' : cannot convert to an integral or floating point value
C3166 'pointer' : cannot declare a pointer to an interior __gc pointer as a member of 'type'
C3167 Unable to initialize .NET Framework: make sure it is installed
C3168 'type' : illegal type for managed enum underlying type
C3169 'function' : cannot declare a managed object or a __gc pointer within an unmanaged function
C3170 cannot have different module identifiers in a project
C3171 'module': cannot specify different module attributes in a project
C3172 'module_name': cannot specify different idl_module attributes in a project
C3173 version mismatch in idl merge
C3174 module attribute was not specified
C3175 'function1' : cannot call a method of a managed type from unmanaged function 'function2'
C3176 'type' : cannot declare local value type
C3177 'enum' : can only specify underlying type for managed enum
C3179 an unnamed managed type is not allowed
C3180 'type name' : type-name exceeds meta-data limit of 'limit' characters
C3181 'type' : invalid operand for __typeof, expected a fully defined managed type
C3182 'class' : a member using-declaration or access declaration is illegal within a managed type
C3183 cannot define unnamed class, struct or union inside of managed type 'type'
C3184 'array' : initialization of multi-dimensional arrays via an initializer list is not supported
C3185 'typeid' used on managed type 'type', use __typeof instead
C3200 'template' : invalid template argument for template parameter 'parameter', expected a class template
C3201 the template parameter list for class template 'template' does not match the template parameter list for template parameter 'template'
C3202 'arg name' : invalid default argument for template parameter 'parameter', expected a class template
C3203 'template' : class template invalid as template argument for template parameter 'parameter', expected a real type
C3204 'function' cannot be called from within a catch block
C3205 argument list for template template parameter 'parameter' is missing
C3206 'function' : member functions of nested classes of a template class cannot be defined outside the class
C3220 'interface' : interface cannot have progid
C3221 'member' : multiple 'default' and 'case' attributes not allowed on a member
C3222 'parameter' : cannot declare default arguments for member functions of a managed type
C3240 'member' : must be a non-overloaded pure virtual member function of 'class'
C3241 'method' : this method was not introduced by 'interface'
C3242 'function' : you can only explicitly override virtual functions
C3243 none of the overload functions were introduced by 'interface'
C3244 'method' : this method was introduced by 'interface' not by 'interface'
C3245 'identifer' : the identifier after the keyword 'super' must be the same as current function
C3246 'class' : cannot inherit from 'X' as it has been declared as '__sealed'
C3247 'class1' : a coclass cannot inherit from another coclass 'class2'
C3248 'function1': function declared as '__sealed'; cannot be overridden by 'function2'
C3249 'member': explicit override has not been defined in 'type'
C3250 'class' : invalid base class for value type 'class'
C3251 cannot invoke base class method on a value type instance
C3252 'function' : in a managed type you cannot reduce the accessibility to a virtual method
C3253 'managed type' : a managed type cannot derive from an unmanaged type 'unmanaged type'
C3254 'explicit override' : class contains explicit override 'override' but does not derive from an interface that contains the function declaration
C3255 'value type' : cannot dynamically allocate a value type object with managed members on C++ (nogc) heap
C3257 'object' : cannot create a temporary object of a managed type
C3258 managed operators must be declared using 'static op_<Name>' form ('operator' form is disallowed)
C3259 'class2' : an explicitly unmanaged type cannot derive from managed type 'class1'
C3260 'class' : this class must provide an override for the method 'method'
C3262 invalid array indexing: # dimension(s) specified for #-dimensional 'array type'
C3263 classkey 'class' defines both 'method' and 'method'; use explicit function call to disambiguate the conversion
C3264 'class' : a class-constructor cannot have a return type
C3265 cannot declare a managed 'managed construct' in an unmanaged 'unmanaged construct'
C3266 'class' : a class-constructor must have a 'void' parameter list
C3267 'class' : a class-constructor must be fully defined within the enclosing class
C3269 'function' : a member-function of a managed type cannot be declared with '...'
C3270 'field': the FieldOffset attribute can only be used in the context of StructLayout(Explicit), in which case it is required
C3271 'member': invalid value 'value' for the FieldOffset attribute
C3273 'token' : not allowed on C++ try block
C3274 __finally without matching try
C3275 'enum member' : cannot use this symbol without qualifier
C3276 'keyword' : jump out of __finally block has undefined behavior during termination handling
C3277 cannot define an unmanaged enum 'enum' inside managed 'type'
C3278 direct call of interface method 'interface method' will fail at runtime
C3280 'class' : a member-function of a managed type cannot be compiled as an unmanaged function
C3281 'operator' : global operator cannot have managed type 'type' in signature
C3300 '%s': improper format for IDL '%s'
C3301 '%$S': coclass cannot be a '%s' interface
C3302 '%s': identifier has more than %d characters
C3303 'attribute': attribute can only be used on 'usage'
C3305 'attribute': attribute usage is not allowed on 'construct'
C3307 '%$S': unable to create IDL module
C3308 '%s': the alias of the function to be modified must be specified
C3309 'macro_name': module name cannot be a macro or a keyword
C3310 '%$pS': module name conflict
C3311 module attribute must be defined at global scope
C3313 'classname': not a supported IDL type
C3314 '%$S': not a supported IDL module type
C3315 '%$S': must be a member function
C3316 '%s': requires attribute '%s' be defined
C3317 'attribute': is incompatible with attribute 'attribute'
C3318 '%s': has an illegal IDL version format
C3319 '%s': attribute cannot be repeated
C3320 'udt': UDT cannot have same the name as the module 'name' property
C3321 '%s': IDL symbol is multiply defined with different definitions
C3322 'property': is not a valid property for attribute 'attribute'
C3323 '%s': attribute cannot have values
C3324 '%s': property occurs more than once in attribute '%s'
C3325 '%s': attribute has too many arguments
C3326 '%s': is not a valid value for property '%s' of attribute '%s'
C3327 '%s': must specify value for property of attribute '%s'
C3328 '%s': attribute does not have enough arguments
C3329 '%s': requires attribute '%s' be defined on the enclosing class
C3330 '%s': is incompatible with attribute '%s' on the enclosing class
C3331 '%$I': attributes on parameters are only allowed on COM interfaces and coclasses
C3332 '%s': grammar inconsistent, property '%s' is both required and has a default
C3333 'type library': cannot #import corrupt type library
C3335 '%$I': There can be at most one default interface for a coclass '%$S'
C3336 This operation must be performed at class scope
C3337 '%$I': defaultvtable must be an event source for a coclass '%$S'
C3338 '%$I': There can be at most one default interface that is also an event source for a coclass '%$S'
C3339 '%s': must be an interface in coclass '%s'
C3340 'interface': interface cannot be both 'restricted' and 'default' in coclass 'class'
C3341 '%$S': a defaultvtable interface must be either 'dual' or 'custom'
C3342 '%$I': ambiguous attribute
C3343 '%s::%s': attribute identifier has too many characters
C3344 'provider (name, uuid) has major version ver1, but c1xx needs it to be at least ver2 -- please recompile
C3345 '%s': invalid identifier for module name
C3346 'attribute': cannot assign values to this attribute
C3347 'arg': required argument is not specified in attribute attribute
C3349 '%s::%s': multicast attribute has already been implemented by provider %s
C3350 'delegate' : a delegate constructor expects two arguments
C3351 'object' : if you pass a NULL object instance to a delegate constructor you must also pass the address of a static member function
C3352 'function' : the specified function does not match the delegate type 'type'
C3353 'delegate' : a delegate can only be created from a global function or a member function of a managed type
C3354 'function' : the function used to create a delegate cannot have return type 'type'
C3355 '%s::%s': multicast attribute listens to provider '%s', but is implemented by provider '%s'
C3356 'attribute': cannot call a multicast attribute with a fully qualified name
C3357 'attribute': attribute is ambiguous, must use fully qualified name
C3358 'symbol': symbol not found
C3359 'template': cannot specialize template
C3360 'string': cannot create name
C3361 there is no context in which to %s
C3362 '%s::%s': multicast attribute has not been implemented
C3363 'global function' : cannot create a delegate handler for 'delegate' from a non-member function or a member of an unmanaged class
C3364 'delegate' : invalid second argument for delegate constructor; needs to be a pointer to a member function
C3365 'method' : delegates on non-interface methods of value types are not supported
C3366 'variable' : static data members of managed types must be defined within the class definition
C3368 'function declaration' : invalid calling convention for IDL
C3369 'module name': idl_module already defined
C3370 'idl_module name': idl_module not yet defined
C3371 'idl_module': only the 'name' property is allowed here
C3372 must specify at least 1 interface for attribute 'source' on a coclass
C3373 attribute 'attribute' takes no arguments except on a coclass
C3374 Illegal use of managed function with no arguments
C3375 Cannot explicitly inherit 'object' from System::Delegate or System::MulticastDelegate
C3376 'type' : type is inaccessible
C3377 'method' : cannot import method - a parameter type or the return type is inaccessible
C3378 'type' : cannot import field - the type is inaccessible
C3379 'class' : a nested class cannot have an assembly access specifier as part of its declaration
C3380 'class' : invalid assembly access specifier - only 'public' or 'private' are allowed
C3381 'class' : an assembly access specifier can only be applied to a managed type
C3383 'function' : in an unmanaged class, a virtual member function cannot have a managed type in the signature
C3385 'class::function' : a function that has a DllImport Custom Attribute cannot return an instance of a class
C3386 'type' : __declspec(dllexport)/__declspec(dllimport) cannot be applied to a managed type
C3387 'member' : __declspec(dllexport)/__declspec(dllimport) cannot be applied to a member of a managed type
C3400 'char': unexpected token/character encountered in attribute block
C3401 'structure': cannot resolve export
C3402 '%s': cannot resolve overload except in the current scope
C3403 '%$L': unexpected token encountered for attribute value
C3404 '%s': unexpected syntax error
C3405 '%s': cannot resolve overload without complete descriptor
C3406 'attribute': empty attribute argument list is not allowed
C3407 '%$I': empty attribute argument is not allowed
C3408 'attribute': attribute is not allowed on template definitions
C3409 empty attribute block is not allowed
C3410 'attribute': attribute requires 'attributes'
C3411 '%s': attribute requires '%s' on the enclosing class
C3500 invalid ProgID 'progid'
C3501 there is no typelib registered for ProgID 'progid'
C3502 cannot obtain LIBID for ProgID 'progid'
C3503 cannot obtain version for ProgID 'progid'
C3504 cannot create GUID from string '%s'
C3505 cannot load type library '%s'
C3506 there is no typelib registered for LIBID '%s'
C3507 a ProgID can have no more than 39 characters 'id'; nor contain any punctuation apart from '.'; nor start with a digit
C3508 'type': is not a valid Automation type
C3509 'type': invalid Automation return type; when a parameter is marked 'retval', the return type must be 'void', 'HRESULT' or 'SCODE'
C3520 '%s': attribute argument not found for attribute '%s'
C3522 '%s': invalid value for attribute 'required_entries'
C3524 '%s': required entry not found for attribute '%s'
C3600 unions are not allowed
C3601 templates are not allowed
C3602 '%s': a __gc type object cannot be passed by value
C3603 'Symbol': type 'Type' not yet supported
C3604 'object': can only create a __gc type object on the __gc heap
C3605 cannot be both '%$M' and '%$M'
C3606 '%$I': a '%$M' cannot be '%$M'
C3607 'calling convention': calling convention unavailable
C3608 cannot apply sizeof to a __gc array
C3609 'element': '__sealed' can only be used on __gc classes and non-pure virtual functions of a __gc class
C3610 'valuetype': value type must be 'boxed' before method 'method' can be called
C3611 'type': cannot use reinterpret_cast on a managed type
C3613 'symbol': symbol must be 'managed' in this context
C3615 'type': invalid target type for cast
C3616 'number': a size cannot be specified in a __gc array declaration
C3618 'function': a method marked DllImport cannot be defined
C3619 a template cannot be declared within a managed type
C3620 error processing file: '%s' at line %d
C3621 cannot redefine imported class '%$S'
C3622 'class': a class declared as '__abstract' cannot be instantiated
C3623 'variable': bit fields are not supported
C3624 'class': the compiler cannot find this type; it is defined in the %$M '%s'
C3625 'unmanaged type': an unmanaged type cannot derive from a managed type 'unmanaged class'
C3626 'declaration': '__event' keyword can only be used on COM interfaces, member functions and data members that are pointers to delegates
C3627 Only a value type can be boxed
C3628 'base class': managed classes only support public inheritance
C3629 'class': a class that is declared as '__abstract' cannot be a value type nor can it be declared as '__sealed'
C3630 error when processing the token 'token'
C3631 'function': cannot overload managed events
C3632 'event': illegal style of event for %$M
C3633 cannot define 'member' as a member of managed 'type'
C3634 'method' : cannot define a pure virtual method of a managed class
C3636 The type 'type' is inaccessible or undefined in 'file'
C3701 'function': event source has no events
C3702 ATL is required for COM events
C3703 'event handler': an event handler method must have the same storage class as the source 'event'
C3704 'function': a vararg method cannot fire events
C3705 'function': cannot find eventing interface
C3706 'function': must be a COM interface to fire COM events
C3707 'function': dispinterface method must have a dispid
C3708 'interface': improper use of __event; must be a member of a compatible event source
C3709 'function': improper syntax for specifying event in __hook/__unhook
C3710 'function': improper syntax for specifying event handler in __hook/__unhook
C3711 'method': a non-managed event source method must return void or an integral type
C3712 'method': an event handler method must return the same type as the source 'method'
C3713 'method': an event handler method must have the same function parameters as the source 'method'
C3714 'method': an event handler method must have the same calling convention as the source 'method'
C3715 'pointer': must be a pointer to 'class'
C3716 'method': improper syntax for method
C3717 'method': a method that fires events cannot be defined
C3718 can only call '__event' in the context of a member function of the receiving class
C3719 'interface': an interface based event source can only be used for COM events
C3720 'interface': can only implement IDispatch on a dual or dispinterface
C3721 'signature': incompatible signature for event
C3723 'function': could not resolve event
C3724 must #include <windows.h> to use multi-threading with events
C3725 'attribute class': cannot resolve attribute overload
C3726 'class': cannot resolve attribute usage 'usage'
C3727 'event': a managed event must be a member function or a data member that is a pointer to a delegate
C3728 'event': event does not have a raise method
C3729 'type': is not managed; a custom attribute 'attribute' can only be applied to a managed type
C3730 'event': an event must have both an add and a remove method
C3731 incompatible event 'function1' and handler 'function2'; event source and event handler must have the same event type
C3732 'interface': a custom interface that fires COM events cannot inherit from IDispatch
C3733 'event': improper syntax for specifying a COM event; did you forget '__interface'?
C3734 'class': a managed class cannot be a coclass
C3735 'attribute': managed only attribute
C3736 'event': must be a method or, in the case of managed events, optionally a data member
C3737 'delegate': a delegate may not have an explicit calling convention
C3738 'class': custom attribute class does not have any public constructors
C3739 'class': syntax is only supported when the 'layout_dependent' parameter of event_receiver is true
C3740 'template': templates cannot source or receive events
C3741 'class': must be a coclass when the 'layout_dependent' parameter of event_receiver is true
C3742 'type': could not convert to System::Type*
C3743 can only hook/unhook an entire interface when the 'layout_dependent' parameter of event_receiver is true
C3744 __unhook must have at least 3 arguments for managed events
C3745 'function': only an event can be 'raised'
C3746 'attribute': only custom attributes can be used on assemblies or modules
C3747 missing or misplaced default template parameter
C3748 'interface': unmanaged interfaces may not fire events
C3749 'attribute': a custom attribute may not be used inside a function
C3750 'attribute': a custom attribute may not be used in an anonymous attribute block unless it is scoped for assembly or module
C3751 'attribute': '__assembly' or '__module' attribute qualifiers can only be used in anonymous attribute blocks
C3752 'attribute class': cannot classify attribute; 'keyword' should not be used in this context
C3753 'function': a pure virtual function may not be used to create a delegate
C3754 'called': cannot be called through a variable of type 'pointer'
C3755 'delegate': a delegate may not be defined
C3756 'name': delegate definition conflicts with an existing symbol
C3757 'event': an event may only be accessed in the context of add_E, remove_E or raise_E
C3758 'attribute': attribute name is reserved
C3759 'attribute class': a custom attribute that applies to a class member must be applied to the in-class declaration
C3760 please use __property keyword to declare property in managed 'class'
C3761 'function': 'retval' can only appear on the last argument of a function
C3762 unable to process attribute 'attribute'
C3763 'type': 'retval' and 'out' can only appear on a data-pointer type
C3764 'constructor': a delegate constructor cannot accept a pointer to a value type 'type' as its first parameter
C3765 'event': cannot define an event in a class/struct 'type' marked as an event_receiver
C3800 'declaration': cannot mix properties and events
C3801 'token': unexpected token, expected either '{' or ';'
C3802 'name': invalid name for a property
C3803 'property': property has a type which is incompatible with one of its accessors 'accessor'
C3805 'token': unexpected token, expected either '}' or a ','
C3806 'property': either a 'get' method and/or a 'set' method must be associated with this property
C3807 unexpected 'character': did you forget a ';'?
C3809 'structure': a managed type cannot have any friend functions/classes/interfaces
C3810 'interface': only public inheritance of an interface is allowed
C3811 property methods 'get_accessor' and 'set_accessor' must agree on their 'static' specifier
C3812 '__property' must be the first token in a property declaration
C3813 a property declaration can only appear within the definition of a managed type
C3814 'class member': this member cannot co-exist with a property of the same name
C3815 return type of method 'get accessor' must match type of the last parameter of 'set accessor'
C3816 'declaration': forward declarations and/or definitions do not have the same attribute 'attribute'
C3817 'declaration': property can only be applied to a function
C3818 array property declaration 'property1' shall not overload an index property 'property2'
C3819 wrong number of parameters in 'property'
C3820 'construct': not accessible outside the assembly
C3821 'function': managed type cannot be used in an unmanaged function
C3822 'property': name of the property method must start with 'get_' or 'set_'
C3823 '__pin': storage class modifier can only be applied to a pointer
C3824 'pointer': only non-static local pointers may be declared as pinned
C3825 'class': a managed class can only support managed events
C3826 'identifier': declaring pinned formal parameters is illegal
C3827 'type3' : cannot have both a managed base 'type1' and an unmanaged base 'type2'
C3828 'object type': placement arguments not allowed while creating instances of managed classes
C3830 'type': value types cannot have a base class
C3831 'member': 'class' cannot have a pinned data member or a member function returning a pinning pointer
C3832 'type library': type library looks as if it was built for 32-bit pointers; please change the 'ptrsize' qualifier
C3833 'operator notation' cannot be called as a member function of a managed class or valuetype; use 'operator symbol' as an infix operator or use the static member function 'operator function'
C3834 illegal explicit cast to a pinning pointer; use a pinned local variable instead
C3836 static constructor is not allowed to have a member initializer list
C3838 cannot explicitly inherit from System.ValueType
C3839 cannot change alignment in a managed type
C3840 declaration of 'method' not allowed; use destructors to implement finalization
C3841 illegal delete expression: managed type 'type' does not have a destructor defined
C3842 'function': 'const' and 'volatile' qualifiers on member functions of managed types are not supported
C3844 'symbol' : cannot import symbol from 'assembly': as 'symbol' already exists in the current scope
C3845 'member' : only static data members can be initialized inside a __gc class or value type
C3846 'symbol' : cannot import symbol from 'assembly2': as 'symbol' has already been imported from another assembly 'assembly1'