Recovery
Initialize the member in the declaration.
Recovery
Initialize the member in the declaration.
A class or enum definition must not be specified as a function return type. A semicolon may be missing after the definition.
Recovery
Ensure that a semicolon is not missing after the definition or change the return type.
A class cannot inherit a function that has the same as the class.
Recovery
Change the name of either the base class or the inherited function.
The declaration of an enumeration must contain its member list.
Recovery
Fully declare the enumeration.
Recovery
Remove the unrecognized value.
The previous message applies to the specified argument number. This message does not indicate another error or warning, it indicates which argument of the function call is the subject of the previous message.
The pragma is not supported by this compiler.
Recovery
Change or remove the #pragma directive.
Recovery
Create a constructor for the nested class object.
You have provided an integer constant that is out of range. For the range of integer constants check limits.h.
Recovery
Ensure the integer constant is in range.
You have provided a floating point constant that is out of range. For the range of floating point constants check float.h.
Recovery
Ensure the floating point constant is in range.
Using the constructor's member initializer list is the only way to initialize nonstatic const and reference members.
Recovery
Initialize the member in the constructor's initializer list.
The file did not end with a new-line character.
Recovery
Ensure the file ends with a new-line character.
You cannot resolve an explicit cast to a reference type using constructors or conversion functions.
Recovery
Cast the type to a temporary type and then take the reference to it.
A string that has a prefix L cannot be concatenated with a string that is not prefixed.
Recovery
Ensure both strings have the same prefix, or no prefix at all.
Default arguments for member functions are not checked until the end of the class definition. Default arguments for member functions of nested classes are not semantically checked until the containing class is defined. A call to a member function must specify all of the arguments before the default arguments have been checked.
Recovery
Specify all default arguments with all members of the type.
A class must be defined in the scope that it was introduced.
Recovery
Define the class in the scope in which it was introduced.
Recovery
Ensure the address of an overloaded function is used on an initialization or an assignment, or remove the expression.
One of the arguments to the function was given a compiler-generated name. This name could be different in offer compilation units.
Recovery
Provide a type name for the argument that the compiler generated a name for.
The compiler detected a non-type symbol where a type is required. A type must be used to declare an object.
Recovery
Change to a type name or remove the expression.
The compiler has determined that it must use a temporary to store the result of the expression, but the result is an abstract base type. An abstract base type cannot be used to create an object.
Recovery
Change the type of the result.
Template class definitions are nested in such a way that the compiler may not be able to continue.
Recovery
Reduce the number of nesting levels of template class definitions.
The pure virtual function in a nonvirtual base cannot be overridden once it has been hidden.
Recovery
Make the pure virtual function visible, or make the base it is derived from virtual.
A non-class template can only declare a global function or a member of a template class. If it declares a member of a template class, the template class arguments must include at least one of the non-class template arguments.
Recovery
Change the template declaration so that it either declares a global function or a member of a template class that uses the non-class template arguments.
The compiler needs to generate a temporary to hold the return value of the function. To generate the temporary object, a copy constructor is needed to copy the contents of the object being returned into the temporary object.
Recovery
Create a copy constructor for the class or change the argument to pass by value.
During the processing of a class template, possible errors were found in the class declaration. These errors may occur when the template is instantiated.
Recovery
Ensure that the errors will not occur when the template is instantiated.
During the processing of a class template, a possible error was found in the class declaration. This error may occur when the template is instantiated.
Recovery
Ensure that the error will not occur when the template is instantiated.
The compiler detected a condition where the name of the input source file is the same as an output file being generated by the compiler.
Recovery
Change either the input file name or the output file name.
The compiler has detected the declaration of an automatic variable that was previously defined as having external linkage.
Recovery
Move, remove, or change the external variable definition.
A member function that is not a constructor is defined with an initializer list.
Recovery
Remove the initializer list.
No return value is returned from the current function but the function is expecting a non-void return value.
Recovery
Ensure a value is returned, or change the return type of the function to void.
It is invalid to jump past a declaration with an explicit or implicit initializer unless the declaration is in an inner block that is also jumped past.
Recovery
Enclose the initialization in a block statement.
The template redeclares a data member of a class template as a member function.
Recovery
Change the original declaration of the variable to a member function, or change the redeclaration of the variable to a data member.
The template redeclares a member function of a class template as a data member. There may be syntax errors in the declaration.
Recovery
Change one of the declarations if necessary.
The compiler limit for the length of a string literal has been exceeded. The string literal is too long for the compiler to handle.
Recovery
Specify a shorter string literal.
The compiler limit for the length of a wide string literal has been exceeded. The wide string literal is too long for the compiler to handle.
Recovery
Specify a shorter string literal.
The definition of the class can only be used during automatic generation of template functions if it is contained in an include file.
Recovery
Add the definition to an include file.
The compiler has detected a multibyte character sequence that it does not recognize.
Recovery
Replace the "multibyte character sequence character" (MBCS) character.
The user tried to call a member function that was declared to be a pure virtual function.
Recovery
Remove or define the function as pure virtual.
Recovery
Remove the "#line" directive or recompile without the "-a" or "-ae" option.
The option was messing a required parameter. See the "Users Guide" for details on the option.
Recovery
Add a value for the option.
The argument is a function template or an overloaded function with two or more variants. The compiler cannot decide which variant to choose to bind to the argument type.
Recovery
Change the formal template argument or remove the extra variants.
The compiler limit has been exceeded for the number of include files allowed in a compilation unit.
Recovery
Reduce the number of files.
Recovery
Remove -qflttrap=enable option.
Because you cannot take the address of a built-in function, you cannot declare a pointer to a built-in function.
Recovery
Remove the pointer.
The function declared as a built-in is not recognized by the compiler as being a built-in function.
Recovery
Ensure the function is a built-in function or remove the built-in keyword from the declaration.
Recovery
Remove the operator from the expression.
You can only generate this message in the debugger, when you use an expression that includes a function call.
Recovery
Remove function calls from the expression.
Recovery
Simplify the expression.
Recovery
Change the expression so that a temporary object is not required.
The identifier refers to an overloaded function with two or more variants. The compiler requires a prototype argument list to decide which variant to process.
Recovery
Specify a prototype argument list or remove variants of the overloaded function.
The symbol must be the name of a data object, the name of a function with no variants, or a function or operator name followed by a parenthesized argument list.
Recovery
Ensure the symbol is either the name of a data object, the name of a function with no variants, or a function or operator name followed by a parenthesized argument list.
The pragma directives #map, #import, and #export can only be applied to objects or functions that are external.
Recovery
Add or remove the #pragma directive.
Only one map name may be given to any object or function.
Recovery
Change one of the map names.
The option specified for the #pragma directive is not valid.
Recovery
Remove or change the option.
The specified options cannot be used together. The first option specified in the message is ignored.
Recovery
Remove one of the options.
A Pascal string was concatenated to a non-Pascal string. The result of the concatenation is a non-Pascal string.
Recovery
Ensure both strings are either Pascal or non-Pascal.
A non-Pascal string was concatenated to a Pascal string. The result of the concatenation is a Pascal string.
Recovery
Ensure both strings are either Pascal or non-Pascal.
A Pascal string is longer than 255 bytes. The length byte has been set to 255, but the rest of the string is left intact.
Recovery
Shorten the Pascal string.
The specified object has a special compiler-generated external name, but appears in a #pragma map directive that would override that name. Using #pragma map to replace the name may cause link errors or prevent argument type checking across compilation units.
Recovery
Remove the #pragma map directive that overrides the compiler-generated external name.
The bit-field length must be a non-negative integer value.
Recovery
Change the bit-field length to a non-negative integer value.
A named bit-field must have a positive length; a zero-length bit-field is used for alignment only, and must not be named.
Recovery
Remove the name from the zero-length bit-field.
The bit-field length is smaller than the number of bits needed to hold all values of the enum.
Recovery
Increase the bit-field length.
The bit-field length is larger than the number of bits needed to hold all values of the enum.
Recovery
Decrease the bit-field length.
The name of the object, or a typedef name used to declare it, appeared in a #pragma seg16 directive, indicating it can be used in 16-bit code and will not cross 64K boundaries. However, because the object is larger than 64K, it will cross the 64K boundary.
Recovery
Remove the name of an object in the #pragma seg16 directive.
The class or function declared in the template friend declaration must be defined at file scope.
Recovery
Remove the definition from the template friend declaration.
There can be no static or inline function declarations at block scope.
Recovery
Move the function so that it is not defined at block scope.
The previous message applies to the specified argument number. This message does not indicate another error or warning, it indicates which argument of the function call is the subject of the previous message.
The previous message applies to the specified argument number. This message does not indicate another error or warning, it indicates which argument of the function call is the subject of the previous message.
Non-static data members cannot be defined outside the class definition.
Recovery
Make the member a static member or move it into the class definition.
Array element initializers must be enclosed in braces.
Recovery
Put braces around the initializer.
A union can only contain one member object at any time, and therefore can be initialized to only one value.
Recovery
Remove all but one of the initializers.
This is an informational message; no response is necessary.
This is an informational message; no response is necessary.
Recovery
Correct the error and recompile.
The compiler must generate code to convert the actual return type into the type that the overridden function returns (so that calls to the original overridden function is supported). However, the conversion is ambiguous.
Recovery
Clarify the base class.
This message provides more information when the array operator was used with invalid types. The message tells the user what the types were used with the array operator.
Only externally-defined functions can be imported.
Recovery
Remove the directive that imports the function or define the function externally.
Only functions defined in this compilation can be exported.
Recovery
Remove the directive that exports the function or define the function in this compilation unit.
You can only import or export a function once.
Recovery
Remove one of the directives.
The terminating "," or ")" for the argument was not found.
Recovery
Ensure the terminating "," or ")" is in the argument.
The enum type is too large to fit in the storage requested with the /Su option.
Recovery
Redefine the storage to a larger size by specifying a larger number for /Su option.
First, the base classes are initialized in declaration order, then the members are initialized in declaration order, then the body of the constructor is executed.
Recovery
Do not reference the class member in the base class initializer.
The compiler has detected the mixing of relational and bitwise operators in what was determined to be a conditional expression.
Recovery
Ensure the correct operator is being used.
The compiler has detected the mixing of relational and bitwise operators in what was determined to be a conditional expression.
Recovery
Ensure the correct operator is being used.
The compiler has detected the mixing of relational and bitwise operators in what was determined to be a conditional expression.
Recovery
Ensure the correct operator is being used.
This message is generated by the /Wcnd option. This option warns of possible redundancies or problems in conditional expressions involving relational expressions and bitwise operators.
Recovery
Ensure the correct operator is being used.
This message will be generated when /Wcnd option is specified, in order to warn possible redundancies or problems in conditional expressions involving logical expressions and bitwise operators.
Recovery
Ensure the correct operator is being used.
This message will be generated when /Wcnd option is specified, in order to warn possible redundancies or problems in conditional expressions involving equality expressions and bitwise operators.
Recovery
Ensure the correct operator is being used.
The "this" pointer is a const pointer and cannot be modified.
Recovery
Remove the assignment to the "this" pointer.
Recovery
Remove all arguments from the special member function.
The second operand to the "offsetof" operator must consist only of "." operators and "[]" operators with constant bounds.
Recovery
Remove or change the second operand.
The specified name is a class member, but no class qualification has been used to reference it.
Recovery
Use the scope operator ( :colon. :colon.) to qualify the name.
The definition of the class is not given but the compiler must implement the pointer to member. It will do so by assuming the class has at most one nonvirtual base class.
Recovery
If this assumption is incorrect, define the class before declaring the member pointer.
The definition of the class is not given so the compiler does not know whether the class has a destructor. No destructors will be called.
Recovery
Define the class.
![]()
Summary of Compiler Error Messages