### 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