Geoff Chappell - Software Analyst
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' |