Compiler Error Messages EDC3200 - EDC3299

EDC3200
The compiler cannot generate a default copy assignment operator for "&1".

The default copy assignment operator cannot be generated for this class because it has a const member or a reference member or a member (or base class) with a private copy assignment operator.

Recovery

Ensure there are no const members, reference members or members with a private copy assignment operator.

EDC3201
&1 too few non-option arguments.

You can generate this message only when you are running the compiler passes manually.

Recovery

Add non-option arguments.

EDC3202
"&1" must not be declared inline or static.

Although "&1" is not a keyword, it is a special function that cannot be inlined or declared as static.

Recovery

Remove the inline or static specifier from the declaration of "&1".

EDC3203
Pure virtual function called.

A call has been made to a pure virtual function from a constructor or destructor. In such functions, the pure virtual function would not have been overridden by a derived class and a runtime error would occur.

Recovery

Remove the call to the pure virtual function.

EDC3204
"&1" is not allowed as a conversion function type.

A conversion function cannot be declared with a function or an array as its conversion type, since the type cannot be returned from the function.

Recovery

Declare the function as converting to a pointer to the function or the array element type.

EDC3205
Syntax error - "&1" is followed by "&3" but is not the name of a &2.

The name is not a class or template name but the context implies that it should be.

Recovery

Change the name to a class or template name.

EDC3206
The previous &1 messages apply to the definition of template "&2".

The instantiation of the specified template caused the messages, even though the line numbers in the messages refer to the original template declaration.

Recovery

This message supplies additional information for previously emitted messages. Refer to the descriptions of those messages for recovery information.

EDC3207
The previous message applies to the definition of template "&1".

The instantiation of the specified template caused the message, even though the line number in the message refers to the original template declaration.

Recovery

This message supplies additional information for previously emitted messages. Refer to the descriptions of those messages for recovery information.

EDC3208
No suitable constructor exists for conversion from "&1" to "&2".

A constructor is required for the class but no user-defined constructor exists and the compiler could not generate one.

Recovery

Create a suitable constructor for conversion.

EDC3209
class "&1" does not have a copy assignment operator.

A copy assignment operator is required for the class but no user-defined copy assignment operator exists and the compiler could not generate one.

Recovery

Create a copy assignment operator.

EDC3210
"&1" cannot be used as a template name since it is already known in this scope.

A template name must not match the name of an existing template, class, function, object, value or type.

Recovery

Change one of the template names.

EDC3211
"&1" is expected for template argument &2.

Either the argument is a type and the template has a non-type argument, or the argument is an expression and the template has a type argument.

Recovery

Ensure the argument matches the template.

EDC3212
"&1" cannot be defined before the template definition of which it is an instance.

An explicit definition of a template class cannot be given before the corresponding template definition.

Recovery

Move the template definition so that it occurs before any template class definitions.

EDC3213
An ellipsis (...) cannot be used in the argument list of a template function.

Since an exact match is needed for template functions, an ellipsis cannot be used in the function argument list.

Recovery

Remove the ellipsis from the argument list.

EDC3214
The suffix for the floating point constant is not valid.

You have provided an incorrect suffix for the floating point constant. Valid suffixes for floating point constants are L and F.

Recovery

Change the suffix for the floating point constant.

EDC3215
Statement has no effect.

The expression has no side effects and produces a result that is not used.

Recovery

Remove the statement or use its result.

EDC3216
"/*" detected in comment.

"/*" has been detected within a "/*" type comment. Nested comments are not allowed.

Recovery

Remove the imbedded "/*" and ensure that you are not missing the end of the other comment.

EDC3217
Predefined macro name "&1" cannot be redefined or undefined.

The specified macro name is predefined by the compiler and cannot be redefined with #define or undefined with #undef.

Recovery

Remove the definition expression or change the macro name.

EDC3218
The suffix for the integer constant is not valid.

The integer constant is a suffix letter that is not recognized as a valid suffix.

Recovery

Change the suffix to either "u" or "l".

EDC3219
The expression contains a division by zero.

Recovery

Remove the division by zero from the expression.

EDC3220
The expression contains a modulus by zero.

Recovery

Remove the modulus by zero from the expression.

EDC3221
Static member "&1" can only be defined at file scope.

Recovery

Move the static member so that it is defined at file scope.

EDC3222
"&1" needs a constructor because &2 "&3" needs a constructor initializer.

You have not provided a constructor for the class, because the member or base class does not have a default constructor.

Recovery

Add a constructor.

EDC3223
"&1" cannot be redeclared since it has already been used in this scope.

The name is being declared in a member list but was previously declared outside the member list and then used in the member list.

Recovery

Change or remove one of the occurrences.

EDC3224
Conversion from "&1" to a reference to a non-const type "&2" requires a temporary.

A temporary may only be used for conversion to a reference type when the reference is to a const type.

Recovery

Change to a const type.

EDC3225
"&2" is too small to hold a value of type "&1".

A conversion from a pointer type to an integral type is only valid if the integral type is large enough to hold the pointer value.

Recovery

Remove the conversion from a pointer type to an integral type or use a larger integral type.

EDC3226
Object of type "&1" cannot be constructed from "&2" expression.

There is no constructor taking a single argument that can be called using the given expression.

Recovery

Change the expression.

EDC3227
The compiler cannot generate a copy constructor for conversion to "&1".

A copy constructor is required for the conversion. No suitable user-defined copy constructor exists and the compiler could not generate one.

Recovery

Create a copy constructor for the conversion.

EDC3228
No suitable constructor or conversion function exists for conversion from "&1" to "&2".

A constructor or conversion function is required for the conversion but no such constructor or function exists.

Recovery

Create a constructor or conversion function for the conversion.

EDC3229
The file is empty.

An empty source or include file has been encountered while reading source. The source file name or include file name may not be spelled correctly.

Recovery

Check the file name.

EDC3230
Syntax error - "&1" has been inserted before "&2".

A syntax error was found while parsing the program. The message identifies what the compiler expected and what it actually found. The compiler inserts the expected value and compilation continues.

Recovery

Correct the syntax.

EDC3231
Call to "&1" matches some functions best in some arguments, but no function is a best match for all arguments.

No function matches each call argument as well as or better than all other functions.

Recovery

Change the function call so that it matches only one function.

EDC3232
Call matches "&1".

The compiler detected an overloaded function or operator that is similar to another and is providing additional information.

Recovery

Ensure this is the desired match.

EDC3233
Cannot adjust access of "&1 :colon. :colon.&2" because a member in "&3" hides it.

You cannot modify the access of the specified member because a member of the same name in the specified class hides it.

Recovery

Remove the access adjustment expression or unhide the member.

EDC3234
"&1" cannot be redeclared.

The specified name cannot be redeclared because it has already been used.

Recovery

Change or remove one of the declarations.

EDC3235
Syntax error - "&1" is not allowed; "&2" has already been specified.

You cannot use both of the specified attributes in the same declaration.

Recovery

Remove the attributes.

EDC3236
Missing option to "#pragma &1"; the directive is ignored.

A required option of the specified pragma directive is missing.

Recovery

Ensure all options for the pragma are present.

EDC3237
Invalid option "&1" specified for "#pragma options"; the option is ignored.

Recovery

Remove the invalid option.

EDC3238
Invalid or out of range pragma parameter; parameter is ignored.

The pragma parameter specified is either not a valid parameter, or is out of range.

Recovery

Remove the parameter or replace it with one within the range.

EDC3239
Function "&1" has internal linkage but is undefined.

If a static function or inline member function is referenced in this compilation unit, it must be defined in the same compilation unit.

Recovery

Define the function in the same compilation unit it is referenced in.

EDC3240
Call to "&1" matches more than one template function.

More than one template for the function matches equally well with the argument list specified on the call.

Recovery

Change the call so that it matches only one template function.

EDC3241
"&1" is declared inline, but is undefined.

An inline function must be defined in every compilation unit in which it is used.

Recovery

Define the inline function in this compilation unit.

EDC3242
Non-&1 member function called for a &1 object via pointer of type "&2".

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

Recovery

Ensure that the function call and the function declaration match.

EDC3243
"&1" cannot be a base of "&2" because "&3" contains the type name "&2".

A class cannot inherit a type name that is the same as the class name.

Recovery

Change the name of either the derived class or the inherited class.

EDC3244
"&1" cannot be a base of "&2" because "&3" contains the enumerator "&2".

A class cannot inherit an enumerator with the same name as the class name.

Recovery

Change the name of either the derived class or the inherited enumerator.

EDC3245
compiler doesn't generate this message any more

n/a

EDC3246
Symbol length of &1 exceeds limit of &2 bytes.

The compiler limit for the length of a symbol has been exceeded.

Recovery

Shorten the symbol length.

EDC3247
The result of this pointer to member operator can be used only as the operand of the function call operator ().

If the result of the .* or ->* is a function, then that result can be used only as the operand for the function call operator ().

Recovery

Make the result the operand of the function call operator ().

EDC3248
When "&1" is used as an operand to the arrow or dot operator, the result must be used with the function call operator ().

If the result of the dot or arrow operator is a function, then that result can be used only as the operand for the function call operator ().

Recovery

Make the result the operand of the function call operator ().

EDC3249
A class with a reference or const member needs a constructor.

const and reference members must be initialized in a constructor initializer list.

Recovery

Add a constructor to the class.

EDC3250
Base class initializers cannot contain virtual function calls.

The virtual function table pointers are not set up until after the base classes are initialized.

Recovery

Remove the call to a virtual function in the base class initializer.

EDC3251
The previous declaration of "&1" did not have a linkage specification.

If you want to declare a linkage specification for a function, it must appear in the first declaration of the function.

Recovery

Add a linkage specification to the first declaration of the function

EDC3252
The destructor for "&1" does not exist. The call is ignored.

The destructor call is for a type that does not have a destructor. The call is ignored.

Recovery

Add a destructor to the type.

EDC3253
"&1" has been added to the scope of "&2".

Because the friend class has not been declared yet, its name has been added to the scope of the class containing the friend declaration.

Recovery

If this is not intended, move the declaration of the friend class so that it appears before it is declared as a friend.

EDC3254
The body of friend member function "&1" cannot be defined in the member list of "&2".

A friend function that is a member of another class cannot be defined inline in the member list.

Recovery

Define the body of the friend function at file scope.

EDC3255
The initializer list must be complete because "&1" does not have a default constructor.

An array of objects of a class with constructors uses the constructors in initialization. If there are fewer initializers in the list than elements in the array, the default constructor is used. If there is no default constructor the initializer list must be complete.

Recovery

Complete the initializer list or add a default constructor to the class.

EDC3256
"&1" cannot be opened. The nested include file limit of &2 has been exceeded.

The compiler limit for nested include files has been reached.

Recovery

Remove the nesting of one or more of the include files.

EDC3257
An &1 at file scope must have a storage class of static.

Recovery

Change the storage class of the anonymous class/struct/union to static.

EDC3258
A pure virtual destructor needs an out-of-line definition in order for its class to be a base of another class.

Recovery

Move the definition of the pure virtual destructor so that it is not inline.

EDC3259
The braces in the initializer are incorrect.

Recovery

Correct the braces on the initializer.

EDC3260
Invalid octal integer constant.

The octal integer constant contains an '8' or a '9'. Octal numbers include 0 through 7.

Recovery

Ensure that the octal integer constant is valid.

EDC3261
All the arguments must be specified for "&1" because its default arguments have not been checked yet.

For member functions, names in default argument expressions are bound at the end of the class declaration. Calling a member function as part of a second member function's default argument is an error if the first member function's default arguments have not been checked and the call does not specify all of the arguments.

Recovery

Specify all the arguments for the function.

EDC3262
Ellipsis (...) cannot be used for "&1".

An operator function has been specified with an ellipsis (...), but since the number of operands of an operator are fixed, an ellipsis is not allowed.

Recovery

Remove the ellipsis, and specify the correct number of operands.

EDC3263
Syntax error - expected "&1" or "&2" and found "&3".

A syntax error was found while parsing the program. The message identifies what the compiler expected and what it actually found.

Recovery

Correct the syntax error.

EDC3264
A character constant must end before the end of the line.

The compiler detected a character constant that was not terminated before an end-of-line character was found.

Recovery

End the character constant or use "\" to continue it on the next line. The "\" must be the last character on the line.

EDC3265
A pure virtual function initializer must be 0.

To declare a pure virtual function use an initializer of 0.

Recovery

Set the virtual function initializer to 0.

EDC3266
"&1" is given "&2" access.

Access of the class has changed.

Recovery

Ensure this change is as intended.

EDC3267
"&1" has been qualified with the "this" pointer.

Recovery

Ensure this qualification is intended.

EDC3268
Invalid escape sequence; the backslash is ignored.

You have provided invalid character(s) after the backslash that does not represent an escape sequence. Therefore, the backslash is ignored and the rest of the escape sequence is read as is.

Recovery

Ensure the escape sequence is valid.

EDC3269
The result of an address expression is being deleted.

Recovery

Ensure this action is intended.

EDC3270
Conversion from "&1" to "&2" matches more than one conversion function.

More than one conversion function could be used to perform the specified conversion.

Recovery

Create a new conversion function for this conversion or change one of the types.

EDC3271
Conversion matches "&1".

Recovery

Ensure this is the intended match.

EDC3272
"&1" cannot be initialized with an initializer list.

Only an object of a class with no constructors, no private or protected members, no virtual functions and no base classes can be initialized with an initializer list.

Recovery

Remove the class from the initializer list.

EDC3273
A pointer to a virtual base "&1" cannot be converted to a pointer to a derived class "&2".

A pointer to a class B may be explicitly converted to a pointer to a class D that has B as a direct or indirect base class, only if an unambiguous conversion from D to B exists, and B is not a virtual base class.

Recovery

Remove the conversion of the pointer.

EDC3274
The arguments passed using the ellipsis may not be accessible.

Arguments passed using an ellipsis are only accessible if there is an argument preceding the ellipsis and the preceding argument is not passed by reference.

Recovery

Ensure that there is an argument preceding the ellipsis and that the preceding argument is not passed by reference.

EDC3275
Member function "&1" has already been declared.

A member function cannot be redeclared in the class definition.

Recovery

Remove one of the declarations.

EDC3276
Assignment to a constant expression is not allowed.

The left hand side of the assignment operator is an expression referring to a "const" location. For example, in "a.b", either "b" is a "const" member or "a" is a "const" variable.

Recovery

Remove the assignment.

EDC3277
Assignment to const variable "&1" is not allowed.

The left hand side of the assignment operator is a variable with the "const" attribute. "const" variables may be initialized once at the point where they are declared, but may not be subsequently assigned new values.

Recovery

Remove the assignment to the const variable.

EDC3278
Syntax error found while parsing the bit-field declarator.

The part of this member declaration up to the colon " :colon." appears to be a declaration of a bit-field, but the constant expression expected after the colon was either not found or incorrectly formed.

Recovery

Correct the syntax error.

EDC3279
The return type for the "operator->" cannot be the containing class.

The return type for the "operator->" must be a pointer to a class type, a class type, or a reference to a class type. If it is a class or reference, the class must be previously defined and must contain an "operator->" function.

Recovery

Change the return type for the "operator->".

EDC3280
The virtual function table for "&1" is defined with "&2" linkage.

The class has one or more virtual function tables. A definition of each table will be generated in the current compilation.

Recovery

Ensure this is the desired result.

EDC3281
The virtual function table for "&1" will be defined where "&2" is defined.

The class has one or more virtual function tables. None will be defined in the current compilation, but will be defined in the compilation containing the definition of the specified member function.

Recovery

Ensure this is the desired result.

EDC3282
The virtual function table for "&1" will be defined in a file specified by the user.

Recovery

Ensure this is the desired result.

EDC3283
The previous message applies to function argument &1.

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.

EDC3284
Conversion from "&1" to a reference to a non-const type "&2" requires a temporary.

A temporary may only be used for conversion to a reference type when the reference is to a const type. This is a warning rather than an error message because the "compat" language level is active.

Recovery

Change the reference so that it is to a const type.

EDC3285
The address of a local variable or compiler temporary is being used in a return expression.

The address of a local variable may not be valid once control is passed out of the function.

Recovery

Declare the variable in the calling function or as a global variable, or change the return expression to not use the variable.

EDC3286
Keyword "&1" cannot be used with a function definition.

Recovery

Remove the keyword.

EDC3287
The #pragma directive must occur before the first C++ statement in program; The directive is ignored.

Recovery

Remove the directive or place it before the first C++ statement in the program.

EDC3288
The pointer to member function must be bound to an object when it is used with the function call operator ().

The pointer to member function must be associated with an object or a pointer to an object when it is used with the function call operator ().

Recovery

Remove the pointer or associate it with an object.

EDC3289
The static data member "&1" has already been declared.

Recovery

Remove or change one of the declarations.

EDC3290
Option "&1" must be specified on the command line or before the first C++ statement in the program.

Recovery

Remove the option or place it before the first statement in the C++ program.

EDC3291
The direct base "&1" of class "&2" is ignored because "&1" is also an indirect base of "&2".

A reference to a member of "&1" will be ambiguous because it is inherited from two different paths.

Recovery

Remove the indirect inheritance.

EDC3292
The "&1" operator cannot be applied to undefined class "&2".

A class is undefined until the definition of its tag has been completed. A class tag is undefined when the list describing the name and type of its members has not been specified. The definition of the tag must be given before the operator is applied to the class.

Recovery

Complete the definition of the class before applying an operator to it.

EDC3293
"&1" hides the &2 "&3".

A member in the derived class hides a virtual function member in a base class.

Recovery

Ensure the hiding of the virtual function member is intended.

EDC3294
"&1" is not the name of a function.

A function name is required in this context. The specified name has been declared but it is not the name of a function.

Recovery

Check the spelling. If necessary, change to a function name.

EDC3296
The virtual functions "&1" and "&2" are ambiguous since they override the same function in virtual base class "&3".

The two functions are ambiguous and the virtual function call mechanism will not be able to choose the correct one at runtime.

Recovery

Remove one of the virtual functions.

EDC3297
The "this" address for "&1" is ambiguous because there are multiple instances of "&2".

Two or more "this" addresses are possible for this virtual function. The virtual function call mechanism will not be able to determine the correct address at runtime.

Recovery

Remove the "this" expression or change the function name.

EDC3298
Conversion from "&1" matches more than one conversion function.

More than one conversion function could be applied to perform the conversion from the specified type.

Recovery

Create a new conversion function or remove the conversion.

EDC3299
Function "&1" must not be declared as "&2".

The specified function has a storage class that is not allowed in the context that the function is declared in.

Recovery

Remove the declaration or change the storage class of the function.

 


Summary of Compiler Error Messages