C++ Compiler Error Messages EDC3100 - EDC3199 

EDC3100
"&1" is set but not used in function "&2".

The specified symbol was given a value but was never used.

Recovery

Use the symbol or remove it.

EDC3101
"&1" is used before it is set.

The specified symbol is being used before it has been assigned a value. The value of the symbol is undefined.

Recovery

Define or initialize the symbol before using it.

EDC3102
The reference variable "&1" is uninitialized.

Reference variables must be initialized.

Recovery

Initialize the reference variable or remove it.

EDC3103
"&1" must already be declared.

The specified class or enum name must have been declared before this use of the name.

Recovery

Declare the class or enum name before you use it. Check the correct spelling of the name.

EDC3104
Unrecognized source character "&1", code point &2.

The specified character is not a valid character in a C++ program. The code point represents the ASCII value of the character displayed in hexadecimal format.

Recovery

Remove the character.

EDC3105
A local class cannot have a non-inline member function "&1".

A class declared within a function must have all of its member functions defined inline, because the class will be out of scope before non-inline functions can be defined.

Recovery

Define the functions inline, or move the class definition out of the scope of the function.

EDC3106
The size of "&1" is unknown in "&2" expression.

The operation cannot be performed because the size of the specified type is not known.

Recovery

Ensure the size of the type is known before this expression.

EDC3107
Assignment in logical expression.

The logical expression contains an assignment (=). An equality comparison (==) may have been intended.

Recovery

Change the operator or the expression.

EDC3108
Conversion from "&1" to "&2" may cause truncation.

The specified conversion from a wider to a narrower type may cause the loss of significant data.

Recovery

Remove the conversion from a wider to a narrower type.

EDC3109
"goto &1" bypasses initialization of "&2".

Jumping past a declaration with an explicit or implicit initializer is not valid unless the declaration is in an inner block or unless the jump is from a point where the variable has already been initialized.

Recovery

Enclose the initialization in a block statement.

EDC3110
References to "&1" may be ambiguous. The name is declared in base classes "&2" and "&3".

The compiler detected the base classes of a derived class have members with the same names. This will cause ambiguity when the member name is used. This is only an informational message because the declaration of a member with an ambiguous name in a derived class is not an error. The ambiguity is only flagged as an error if you use the ambiguous member name.

Recovery

Change one of the names, or always fully qualify the name.

EDC3111
Ambiguous reference to "&1", declared in base classes "&2" and "&3".

The derived class made a reference to a member that is declared in more than one of its base classes and the compiler cannot determine which base class member to choose.

Recovery

Change one of the names, or always fully qualify the name.

EDC3112
Conversion from "&1" to "&2" is ambiguous.

There is more than one way to perform the specified conversion. This ambiguity may be caused by an overloaded function.

Recovery

Change or remove the conversion.

EDC3113
"&1" is only valid for non-static member functions.

const and volatile are only significant for non-static member functions, since they are applied to the "this" pointer.

Recovery

Remove const and volatile from all static members.

EDC3114
Duplicate case value.

Case values must be unique within each "switch" statement.

Recovery

Change or remove one of the duplicate case values. Check the braces if you have nested case statements.

EDC3115
Character literal is null.

An empty character literal has been specified. A string literal may have been intended.

Recovery

Remove the character literal, change it to a string literal, or give it a value.

EDC3116
"&1" is given wider scope for compatibility reasons.

A type defined in class scope has been given the scope of the enclosing function or file because of a compiler option.

Recovery

Ensure this is correct scope.

EDC3117
"&1" has more than one base class "&2".

A derived class has inherited the same base class in more than one path and the compiler cannot determine which one to choose.

Recovery

Remove one of the inheritances.

EDC3118
"&1" is a &2 base class of "&3".

An attempt is being made to convert a pointer to a derived class into a pointer to a private or protected base class.

Recovery

Remove the pointer conversion.

EDC3119
The statement is unreachable.

The flow of control in the program never allows the statement to be be reached.

Recovery

Ensure that the statement is accessible to the flow of control, or remove the statement.

EDC3120
&1 "&2" is not allowed in a union.

Unions must not be declared with base classes, virtual functions, static data members, members with constructors, members with destructors, or members with class copying assignment operators.

Recovery

Remove any such members from the union declaration.

EDC3121
union "&1" cannot be used as a base class.

Unions cannot be used as base classes for other class declarations.

Recovery

Remove the union as a base class for other class declarations.

EDC3122
Local variable "&1" is inaccessible from "&2".

An automatic variable within a function is not accessible from local classes declared within the function.

Recovery

Remove the reference to the local variable, or move the variable to a different scope.

EDC3123
Value of enumerator "&1" is too large.

The value of an enumerator must be a constant expression that is promotable to a signed integer value.

Recovery

Reduce the value of the enumerator.

EDC3124
No path specified for -I option.

The option requires a path name to search but no path was found.

Recovery

Supply the name of a directory containing include files after the option.

EDC3125
Missing macro name after -D or -U command line option.

The option requires the name of a macro to be defined or undefined, and no name was found.

Recovery

Add a macro name after the option.

EDC3126
Argument "&1" is not used in function "&2".

The argument has been declared in a function but has not been set or used.

Recovery

Use the argument or remove it.

EDC3127
Global symbol "&1" is not used.

The specified symbol has been declared as a global symbol but has not been set or used.

Recovery

Use the symbol or remove it.

EDC3129
Default initializers are not allowed in local friend functions.

You cannot use default arguments in the friend functions of the local class.

Recovery

Remove the default initializers from the local friend function.

EDC3130
A constant is being used as a conditional expression.

The condition to an if, for, or switch is constant and therefore, that condition will always hold.

Recovery

No response is necessary.

EDC3131
The argument to a not (!) operator is constant.

The compiler has detected a constant after the ! operator which may be a coding error.

Recovery

Remove the constant or ignore this message.

EDC3132
There is more than one character in a character constant.

Using more than one character in a character constant (for example, 'ab') may not be portable across machines.

Recovery

Remove the extra character(s) or change the character constant to a string constant.

EDC3133
Possible pointer alignment problem with the "&1" operator.

A pointer that points to a type with less strict alignment requirements is being assigned, cast, returned or passed as a parameter to a pointer that is a more strictly aligned type. This is a potential portability problem.

Recovery

Remove the pointer reference or change the alignment.

EDC3134
A constant expression is being cast to a pointer.

Casting a constant value to a pointer is not portable to other platforms.

Recovery

Remove the constant expression from the cast expression.

EDC3135
Precision will be lost in assignment to (possibly sign-extended) bit-field "&1".

A constant is being assigned to a signed bit field that cannot represent the constant. Precision may be lost and the stored value will be incorrect.

Recovery

Increase the size of the bit field.

EDC3136
Precision will be lost in assignment to bit-field "&1".

A constant is being assigned to a bit field, and because the bit field has a smaller size, the precision will be lost.

Recovery

Change the assignment expression.

EDC3137
Enumeration type clash with the "&1" operator.

Operands from two different enumerations are used in an operation.

Recovery

Ensure both operands are from the same enumeration.

EDC3138
Comparison of an unsigned value with a negative constant.

An unsigned value is being compared to a negative number. The unsigned value will always compare greater than the negative number. This may be a programming error.

Recovery

Remove the comparison or change the type.

EDC3139
Unsigned comparison is always true or always false.

The comparison is either "unsigned >= 0", which is always true, or "unsigned < 0", which is always false.

Recovery

Remove or change the comparison.

EDC3140
Comparison is equivalent to "unsigned value &1 0".

The comparison is either "unsigned > 0" or "unsigned <= 0", and could be written as "unsigned != 0" or "unsigned == 0".

Recovery

Change the comparison.

EDC3141
Argument &1 for "&2" must be of type "&3".

The indicated function requires an argument of a particular type. However, the argument specified is of a different type than the type required.

Recovery

Ensure that the argument is of the correct type.

EDC3142
The operand for the "#line" directive must be an integer in the range 1 to 32767.

The operand of the "#line" directive must be an integer in the specified range.

Recovery

Ensure that the operand is in the specified range.

EDC3143
Definition of "&1" is not allowed.

You cannot define a type in a type cast or a conversion function declaration.

Recovery

Move the definition to a new location, or remove it.

EDC3144
Reference to "&1" is not allowed.

The name has a special meaning in a C++ program and cannot be referenced in this way.

Recovery

Remove the reference.

EDC3145
Escape sequence &1 is out of the range 0-&2. Value is truncated.

Recovery

Make the escape sequence small enough to fit the specified range.

EDC3146
A wide character constant is larger than the size of a "wchar_t". Only the last character is used.

A wide character constant can only contain one character. This error may be caused by a literal containing a multibyte character if the multibyte character compile option is not used.

Recovery

Make the wide character constant smaller.

EDC3147
A character constant is larger than the size of an "int". Only the rightmost &1 characters are used.

Recovery

Make the character constant smaller.

EDC3148
Linkage specification must be at file scope.

A linkage specification may only be defined at file scope, that is, outside all functions and classes.

Recovery

Move the linkage specification or remove it.

EDC3149
Default initializers cannot be followed by uninitialized arguments.

If a default initializer is specified in an argument list, all following arguments must also have default initializers.

Recovery

Remove the default initializers, or provide them for the following arguments, or move the arguments to the end of the list.

EDC3150
You cannot take the address of "&1".

You cannot take the address of a constructor, a destructor or a reference member.

Recovery

Remove the address operator (&) from the expression or remove the expression.

EDC3151
&1 compiler temporary of type "&2" has been generated.

The compiler has generated a temporary variable. This variable will be destroyed automatically when it goes out of scope. This messages is generated for your information only, it does not necessarily indicate a problem with your program.

Recovery

Ensure that your program does not attempt to reference the temporary variable outside of its scope.

EDC3152
An error was detected while writing to file "&1".

The compiler detected an error while writing to the specified file.

Recovery

Ensure the file name is correct and that the disk is ready to be written to.

EDC3153
Duplicate qualifier "&1" ignored.

The keyword has been specified more than once. Extra occurrences are ignored.

Recovery

Remove one of the duplicate qualifiers.

EDC3154
"&1" operator cannot be overloaded.

The specified operator cannot be overloaded using an operator function. The following operators cannot be overloaded :colon. . .* :colon. :colon. ? :colon.

Recovery

Remove the overloading declaration or definition.

EDC3155
At least one argument of "&1" must be of class or enum type.

The non-member operator function must have at least one argument which is of class or enum type.

Recovery

Add an argument of class or enum type.

EDC3156
Call matches built-in operator.

The compiler detected an operator that is similar to the built-in one, and is providing additional information.

Recovery

Ensure this is the desired match.

EDC3157
The divisor for the modulus or division operator cannot be zero.

Recovery

Change the expression used in the divisor.

EDC3158
The address of the bit-field "&1" cannot be taken.

An expression attempts to take the address of a bit-field, or to use the bit-field to initialize a reference variable or argument.

Recovery

Remove the expression causing the error.

EDC3159
"&1" must not have default initializers.

Default initializers are not allowed within the declaration of an operator function or a template function.

Recovery

Remove the default initializers.

EDC3160
The &1 "&2" cannot be initialized because it does not have a default constructor.

The specified base class or member cannot be constructed since it is not initialized in the constructor initializer list and its class has no default constructor.

Recovery

Specify a default constructor for the class or initialize it in the constructor initializer list.

EDC3161
Line is too long for proper generation of test coverage information.

To generate test coverage information, statements cannot start to the right of column 65536.

Recovery

Shorten the line.

EDC3162
There are too many statements for proper generation of test coverage information.

There can be no more than 65536 statements (not source lines) in a module when test coverage information is to be generated.

Recovery

Reduce the number of statements.

EDC3163
Template class "&1" has the wrong number of arguments.

A template class instantiation has a different number of template arguments than the template declaration.

Recovery

Ensure that the template class has the same number of declarations as the template declaration.

EDC3164
Non-&1 member function "&2" cannot be called for a &1 object.

The member function is being called for a const or volatile object but the member function has not been declared with the const or volatile qualifier.

Recovery

Supply a version of the member function with the correct set of "const" and "volatile" qualifiers.

EDC3165
Null statement.

Possible extraneous semi-colon has been specified.

Recovery

Check for extra semi-colons in statement.

EDC3166
Bit-field "&1" cannot be used in a conditional expression that is to be modified.

The bit-field is part of a conditional expression that is to be modified. Only objects that can have their address taken are allowed as part of such an expression, and you cannot take the address of a bit field.

Recovery

Remove the bit-field from the conditional expression.

EDC3167
The "&1" qualifier cannot be applied to "&2".

The qualifier is being applied to a name or a type for which it is not valid.

Recovery

Remove the qualifier.

EDC3168
Local type "&1" cannot be used as a &2 argument.

The type cannot be used as a function argument or in the instantiation of a template because the scope of the type is limited to the current function.

Recovery

Remove the local type.

EDC3169
Exception specification for function "&1" does not match previous declaration.

If an exception specification is given in more than one declaration of a function, it must be the same in all such declarations.

Recovery

Ensure that all exception specifications match.

EDC3170
Default initializers for non-type template arguments are only allowed for class templates.

Default initializers have been given for non-type template arguments, but the template is not declaring a class.

Recovery

Remove the default initializers.

EDC3171
A function argument must not have type "void".

A function argument may be an expression of any object type. However, "void" is not the type of any object, and cannot be used as an argument type.

Recovery

Change the type of the function argument.

EDC3172
Insufficient memory in line &1 of file "&2".

The compiler ran out of memory during compilation.

Recovery

End unnecessary processes and recompile.

EDC3174
An object of abstract class "&1" cannot be created.

You cannot create instances of abstract classes. An abstract class is a class that has or inherits at least one pure virtual function.

Recovery

Derive another object from the abstract class.

EDC3175
Invalid use of an abstract class.

An abstract class must not be used as an argument type, as a function return type, or as the type of an explicit conversion.

Recovery

Derive another class from the abstract, instantiate it so it becomes a concrete object, and then use it instead.

EDC3176
"&1" has been used more than once in the same base class list.

A base class may only be specified once in the base class list for a derived class.

Recovery

Remove one of the specifications.

EDC3177
Template argument &1 of type "&2" does not match declared type "&3".

A non-type template argument must have a type that exactly matches the type of the corresponding argument in the template declaration.

Recovery

Ensure that the types match.

EDC3178
Template argument &1 of type "&2" is not an allowable constant value or address.

A non-type template argument must be a constant value or the address of an object, function, or static data member that has external linkage. String literals cannot be used as template arguments because they have no name, and therefore no linkage.

Recovery

Change the template argument.

EDC3179
Template argument list is empty.

At least one template argument must be specified in a template declaration.

Recovery

Specify a template argument in the declaration.

EDC3180
Formal template argument &1 is of type "&2" which is not an allowable integral, enumeration, or pointer type.

A non-type template argument must be of integral, or enumeration, or pointer type, so that it can be matched with a constant integral value.

Recovery

Change the template argument.

EDC3181
"&1" is defined in a template declaration but it is not a static member.

A member of a template class defined in a template declaration must be a static member.

Recovery

Make the member static or remove it from the template declaration.

EDC3182
Template argument "&1" is not used in the declaration of the name or the argument list of "&2".

All template arguments for a non-class template must be used in the declaration of the name or the function argument list.

Recovery

Ensure all template arguments are used in the declaration of the name or the function argument list.

EDC3183
Template declaration does not declare a class, a function, or a template class member.

Following the template argument, a template declaration must declare a class, a function, or a static data member of a template class.

Recovery

Change the template declaration to declare a class, a function, or a template class member.

EDC3184
Return type "&1" for function "&2" differs from previous return type of "&3".

The declaration of the function differs from a previous declaration in only the return type.

Recovery

Change the return type so that it matches the previous return type.

EDC3185
"&1" is a member of "&2" and cannot be used without qualification.

The specified name is a class member, but no class qualification has been used to reference it.

Recovery

Add a class qualification to the class member.

EDC3186
The expression is not a valid preprocessor constant expression.

The expression in an "#if" or "#elif" preprocessor directive is either not a valid expression or not a constant expression. No keywords are recognized in such an expression and non-macro identifiers are replaced by the constant 0.

Recovery

Change the expression for the preprocessor directive.

EDC3187
"&1" cannot be initialized multiple times.

An initializer was already specified in the constructor definition.

Recovery

Remove the additional initializer.

EDC3188
A macro parameter is expected after the "#" operator.

The "#" operator in a macro replacement list must be followed by a macro parameter.

Recovery

Add a macro parameter after the "#" operator.

EDC3189
"##" operator is at the start or end of the replacement list.

The "##" operator must be preceded and followed by valid tokens in the macro replacement list.

Recovery

Move the "##" operator in the replacement list.

EDC3190
One or more "#endif" statements are missing at end of file.

The end of file has been reached and there are still "#if", "#ifdef" or "#ifndef" statements without a matching "#endif" statement.

Recovery

Ensure that all "#if", "#ifdef", and "#ifndef" statements have matching "#endif" statements.

EDC3191
No suitable copy assignment operator exists to perform the assignment.

A copy assignment operator exists but it does not accept the type of the given parameter.

Recovery

Change the copy assignment operator.

EDC3192
Identifier "&1" in preprocessor expression is assigned 0.

Identifiers are not recognized in a preprocessor expression. The specified identifier has been treated as a non-macro identifier and assigned the constant 0.

EDC3193
Explicit call to constructor "&1" is not allowed.

You cannot call a constructor explicitly. It is called implicitly when an object of the class is created.

Recovery

Remove the call to the constructor.

EDC3194
"catch(&1)" will never be reached because of previous "catch(&2)".

The catch clause can never be reached since any exception type that matches it will also be matched by the specified previous catch clause.

Recovery

Change or remove one of the catch clauses.

EDC3195
No default constructor exists for "&1".

An array of class objects must be initialized by calling the default constructor, but one has not been declared.

Recovery

Declare a default constructor for the array.

EDC3196
More than one default constructor exists for "&1".

An array of class objects must be initialized by calling the default constructor, but the call is ambiguous.

Recovery

Ensure that only one default constructor exists.

EDC3197
It is invalid to have a throw expression with type "&1".

You cannot throw a function or an expression of type "void".

Recovery

Change the type or remove the throw expression.

EDC3198
The exception specification is ignored in this declaration.

The declaration contains a function declarator with an exception specification but is not the declaration of a function. The exception specification is ignored.

Recovery

Change the function declarator so that it is the declaration of a function.

EDC3199
The compiler cannot generate a default copy constructor for "&1".

The default copy constructor cannot be generated for this class because there exists a member or base class that has a private copy constructor, or there are ambiguous base classes, or this class has no name.

Recovery

Ensure that a member or base class does not have a private copy constructor. If not then ensure the class is named and there are no ambiguous references to base classes.



Summary of Compiler Error Messages