Compiler errors C7500 through C7999

The articles in this section of the documentation explain a subset of the error messages generated by the compiler.


The Visual Studio compilers and build tools can report many kinds of errors and warnings. After an error or warning is found, the build tools may make assumptions about code intent and attempt to continue, so that more issues can be reported at the same time. If the tools make the wrong assumption, later errors or warnings may not apply to your project. When you correct issues in your project, always start with the first error or warning that's reported, and rebuild often. One fix may make many subsequent errors go away.

To get help on a particular diagnostic message in Visual Studio, select it in the Output window and press the F1 key. Visual Studio opens the documentation page for that error, if one exists. You can also use the search tool at the top of the page to find articles about specific errors or warnings. Or, browse the list of errors and warnings by tool and type in the table of contents on this page.


Not every Visual Studio error or warning is documented. In many cases, the diagnostic message provides all of the information that's available. If you landed on this page when you used F1 and you think the error or warning message needs additional explanation, let us know. You can use the feedback buttons on this page to raise a documentation issue on GitHub. If you think the error or warning is wrong, or you've found another problem with the toolset, report a product issue on the Developer Community site. You can also send feedback and enter bugs within the IDE. In Visual Studio, go to the menu bar and choose Help > Send Feedback > Report a Problem, or submit a suggestion by using Help > Send Feedback > Send a Suggestion.

You may find additional assistance for errors and warnings in Microsoft Learn Q&A forums. Or, search for the error or warning number on the Visual Studio C++ Developer Community site. You can also search Stack Overflow to find solutions.

For links to additional help and community resources, see Visual C++ Help and Community.

Error messages

Error Message
Compiler error C7500 '%$I': no function satisfied its constraints
Compiler error C7501 Deprecated '%$S': 'concept' can only applied to a namespace scope function template or variable template
Compiler error C7502 '%$S': the declared return type of a function concept shall be 'bool'
Compiler error C7503 '%$S': a function concept shall have an empty parameter list
Compiler error C7504 '%$S': a function concept shall not be declared with '%$L'
Compiler error C7505 '%$S': a function concept shall not have an exception-specification
Compiler error C7506 '%$S': a function concept shall be defined
Compiler error C7507 '%$S': the declared type of a variable concept shall be 'bool'
Compiler error C7508 unrecognized partition name '%s' in metadata for module '%s'
Compiler error C7509 '%s': malformed module metadata.
Compiler error C7510 'type-name': use of dependent template/type name must be prefixed with 'template/typename'
Compiler error C7511 '%$I': 'typename' keyword must be followed by a qualified name
Compiler error C7512 '%$L': is not a valid operator for a fold-expression
Compiler error C7513 '%$I': cannot deduce the type of the placeholder
Compiler error C7514 a binary fold expression cannot have an unexpanded parameter pack in both expressions
Compiler error C7515 a fold expression must contain an unexpanded parameter pack
Compiler error C7516 a unary fold expression over '%$L' must have a non-empty expansion
Compiler error C7517 '%$L' in a binary fold expression both operators must be the same
Compiler error C7518 fold expressions require at least '%1$M'
Compiler error C7519 file system error: cannot open '%s' because there are too many open files
Compiler error C7520 file system error: cannot open '%s' because it is inaccessible
Compiler error C7521 file system error: cannot read the content of file '%s'
Compiler error C7522 file system error: cannot determine the content size of file '%s'
Compiler error C7523 file system error: cannot read all the content of file '%s'
Compiler error C7524 'inline' specifier cannot appear on a block-scope declaration or non-static data member
Compiler error C7525 inline variables require at least '%1$M'
Compiler error C7526 '%$I': inline variable is undefined
Compiler error C7527 '%$I': template parameter name cannot be redeclared
Compiler error C7528 '%1$S': A default constructor or its exception specification cannot be used within a data member initializer of the same class
Compiler error C7529 multiple using-declarators require at least '%1$M'
Compiler error C7530 applying a pack-expansion to a using-declaration requires at least '%1$M'
Compiler error C7531 main function cannot be declared as 'constexpr/consteval'
Compiler error C7532 '%$I': a specialization of variable template cannot have type '%$T'
Compiler error C7533 '%$S': template arguments not allowed in this context
Compiler error C7534 syntax error: '%$L': expected class definition to end with '}'
Compiler error C7535 '%$S': delegating constructor calls itself
Compiler error C7536 ifc failed integrity checks. Expected SHA2: 'hash-value'
Compiler error C7537 failed to properly compute SHA2 hash: '%s'
Compiler error C7538 '%$I' is not a variable template
Compiler error C7539 '%1$I': a class with user-declared constructors cannot have a member with the same name as the class
Compiler error C7540 '%1$I': member cannot have the same name as the enclosing class
Compiler error C7541 '%1$I': C++17 inline static data members are not compatible with managed types
Compiler error C7542 '%1$S': expected a type
Compiler error C7543 likelihood attributes can only be applied to statements and labels
Compiler error C7544 standard attributes '%1$s' and '%2$s' are mutually exclusive
Compiler error C7545 attribute '%sno_unique_address' can only be applied to a non-static data member that is not a bitfield
Compiler error C7546 binary operator '<=>': unsupported operand types '%$T' and '%$T'
Compiler error C7547 standard type '%$S' ill-formed: member '%$I' was not found
Compiler error C7548 Deprecated '%$D': defaulted comparison functions must be declared within the class definition
Compiler error C7549 '%$S': defaulted comparison function cannot be declared to return a comparison category stronger than the common category among bases and members which was deduced to be '%$T'
Compiler error C7550 '%1$S': the qualified name in this context names a constructor, not a type
Compiler error C7551 '%1$pS': template parameter '%2$S': '%3$pS': purely intrinsic functions have no address for use as a non-type template argument
Compiler error C7552 '%1$S': purely intrinsic functions have no address
Compiler error C7553 inline assembler is not supported in a lambda
Compiler error C7554 %1$pS is not an integral constant expression
Compiler error C7555 use of designated initializers requires at least '%1$M'
Compiler error C7556 cannot mix designated-initializers with non-designated-initializers
Compiler error C7557 designated-initializers can only be used in brace-enclosed initializer lists
Compiler error C7558 nested member access is not allowed in standard C++ designated initializers; use a nested initializer list
Compiler error C7559 '%1$I': designator does not name a direct non-static data member of type '%2$T'
Compiler error C7560 '%1$I': designators must appear in member declaration order of class '%2$S'
Compiler error C7561 '%1$I': member designator appears multiple times
Compiler error C7562 '%1$T': designated initialization can only be used to initialize aggregate class types
Compiler error C7563 creating a lambda with a template parameter list requires at least '%1$M'
Compiler error C7564 '%$pS': no non-explicit function available
Compiler error C7565 the template parameter list associated with a lambda cannot be empty
Compiler error C7566 applying a pack-expansion to an init-capture requires at least '%1$M'
Compiler error C7567 '%1$L' is not supported with '/permissive-'
Compiler error C7568 argument list missing after assumed function template '%1$I'
Compiler error C7569 initializer list for union cannot have more than one element
Compiler error C7570 '%1$pS': variable template has already been defined
Compiler error C7571 '%1$pS': variable template has already been initialized
Compiler error C7572 'using enum %1$S;' requires at least '%2$M'
Compiler error C7573 '%1$S': ill-formed using-declaration; expected a qualified-name or an enumeration
Compiler error C7574 enumeration '%1$pS' is not defined
Compiler error C7575 '%1$S': using enum declaration names a dependent type
Compiler error C7576 declaration of '%1$I' shadows a template parameter
Compiler error C7577 a global module fragment can only appear at the start of a translation unit
Compiler error C7578 unexpected end of file in a global module fragment; expected a module-declaration
Compiler error C7579 the module declaration following a global module fragment cannot be produced by macro expansion or header inclusion
Compiler error C7580 member '%1$pS' for declspec(xfg_reuse_typehash) must be declared with declspec(xfg_virtual)
Compiler error C7581 '%1$S': XFG declspecs can only be applied to global functions, or to data members of pointer-to-function type, with a this-pointer parameter
Compiler error C7582 '%1$I': default member initializers for bit-fields requires at least '%2$M'
Compiler error C7583 an unnamed bit-field cannot have a default member initializer
Compiler error C7584 a for-range-declaration cannot define a class or an enumeration
Compiler error C7585 a range-based for statement with an initializer requires at least '%1$M'
Compiler error C7586 a '%$s' directive must end with a ';' on the same line
Compiler error C7587 '%1$L' cannot appear in an unevaluated context
Compiler error C7588 A definition of a class template %s must be provided for the return type of this coroutine to be deduced
Compiler error C7589 defaulting comparison operators requires at least '%1$M'
Compiler error C7590 a requirement body must contain at least one requirement
Compiler error C7591 bit_cast requires that '%1$T' and '%2%T' have the same size
Compiler error C7592 a non-type template-parameter of type '%1$T' requires at least '%2$M'
Compiler error C7593 a return type requirement shall not be a trailing return type '-> T'. Consider using '-> std::convertible_to<T>' instead
Compiler error C7594 invalid UTF-16 surrogate '0x%x'
Compiler error C7595 '%1$S': call to immediate function is not a constant expression
Compiler error C7596 '%1$S': cannot take address of immediate function outside of an immediate invocation
Compiler error C7597 '%1$D': 'consteval': overriding function must match overridden function
Compiler error C7599 '%1$S': a trailing requires clause is only allowed on a templated function
Compiler error C7600 '%1$S': the concept designated by a type constraint shall be a type concept
Compiler error C7601 the associated constraints are not satisfied
Compiler error C7602 '%1$pS': the associated constraints are not satisfied
Compiler error C7603 '%1$S': concept definition doesn't have constraint expression
Compiler error C7604 '%1$S': 'concept' can only be applied to concept definition at namespace scope
Compiler error C7605 '%1$S': concept shall not have associated constraints
Compiler error C7606 '%1$S': concept cannot be explicitly instantiated, explicitly specialized or partially specialized
Compiler error C7607 atomic constraint should be a constant expression of type 'bool', not '%1$T'
Compiler error C7608 atomic constraint should be a constant expression
Compiler error C7609 '%1$S': type constraint expects a concept name
Compiler error C7610 operator '%$L': not allowed between enumeration types and floating-point types
Compiler error C7611 operator '%$L': not allowed for array types
Compiler error C7612 could not find header unit for '%s'
Compiler error C7613 input '%s' did not evaluate to a header unit
Compiler error C7614 __VA_OPT__ must be followed by a '('
Compiler error C7615 __VA_OPT__ must be terminated by a ')'
Compiler error C7616 __VA_OPT__ cannot be nested within another __VA_OPT__
Compiler error C7617 '%$S': A coroutine cannot have a return type containing 'auto'
Compiler error C7618 module partition '%s' cannot be imported prior to declaring the primary module unit or interface
Compiler error C7619 cannot export '%1$S' as module partition '%2s' does not contribute to the exported interface of module unit '%3s'
Compiler error C7620 cannot export module partition '%1s' it is not an interface unit
Compiler error C7621 module partition '%s' for module unit '%s' was not found
Compiler error C7622 module interface file extension is incompatible with '/module:internalPartition' as the partition is not an interface
Compiler error C7623 '%$pS': redefinition; different XFG declspecs
Compiler error C7624 Type name '%1$S' cannot appear on the right side of a class member access expression
Compiler error C7625 The type of a coroutine promise return_value or return_void expression must be void
Compiler error C7626 unnamed class used in typedef name cannot declare members other than non-static data members, member enumerations, or member classes
Compiler error C7627 '%1$T': is not a valid template argument for '%2$S'
Compiler error C7628 '%1$D': cannot be defaulted because it is not declared as a friend of '%2$S'
Compiler error C7629 '%1$D': cannot be defaulted; comparison function was defined as deleted
Compiler error C7630 'c%s': unsupported C version; using default
Compiler error C7631 '%1$S': variable with internal linkage declared but not defined
Compiler error C7632 '%1$S': a trailing requires clause is not allowed on a virtual function
Compiler error C7633 a parameter in requirement parameter list shall not have a default argument
Compiler error C7634 '%1$T': is not a valid comparison type; consider using '%2$T' instead
Compiler error C7635 a module import declaration cannot appear %$M
Compiler error C7636 '%1$T': invalid expression type for '%2$I'; must be pointer-to-data
Compiler error C7637 %1$T: you cannot implicitly instantiate a class template while it is being defined
Compiler error C7638 /newAlignment argument must be a power of two
Compiler error C7639 /newAlignment requires at least /std:c++17
Compiler error C7640 unrecognized attribute argument for '%1$s'
Compiler error C7641 missing attribute argument for '%1$s'
Compiler error C7642 unsupported IFC format version %d.%d
Compiler error C7643 '%1$S': '%2$L' specifier cannot appear on a function parameter
Compiler error C7644 destroying operator delete functions must be member functions
Compiler error C7645 first formal parameter of destroying operator delete must be a pointer to the enclosing class type, but was '%$T'
Compiler error C7646 destroying operator delete functions cannot be array delete operators 'operator delete[]'
Compiler error C7647 destroying operator delete functions must be usual deallocation functions
Compiler error C7648 a conversion function cannot have a trailing return type
Compiler error C7649 attribute 'xfg::rename' may only be applied to structs, classes and virtual methods
Compiler error C7650 attribute 'xfg::rename' must be passed a string argument
Compiler error C7651 %1$I cannot be used with /await. Use '%2$M' or later for standard coroutine support
Compiler error C7652 if a member function has a trailing requires clause then another member function with the same signature, ignoring any trailing requires clause, cannot be virtual
Compiler error C7653 '%1$S': failed to select a destructor for the class
Compiler error C7654 a private module fragment can only appear in a primary module interface
Compiler error C7655 a declaration cannot be exported in the purview of a private module fragment
Compiler error C7656 private module fragment cannot be redeclared
Compiler error C7657 private module fragment cannot be declared before a module declaration
Compiler error C7658 '%1$S': the initializer must be the address of a variable
Compiler error C7659 attribute 'xfg::rename' may not be applied to nested class hierarchies
Compiler error C7660 '%s': requires '%s' command line option(s)
Compiler error C7661 header-name '%s' has an ambiguous resolution to header '%s'
Compiler error C7662 '%$S': a coroutine cannot be constexpr or consteval
Compiler error C7688 '#pragma omp atomic': expected an expression of scalar type
Compiler error C7686 TOML parse error
Compiler error C7700 type '%$T' in _Generic association compatible with previous association type '%$T'
Compiler error C7701 default _Generic association previously specified
Compiler error C7702 no compatible type for '%$T' in _Generic association list
Compiler error C7703 inline nested namespaces requires at least '%1$M'
Compiler error C7704 '_Alignas' specifier can be used on variables and structure fields only

See also

C/C++ Compiler and build tools errors and warnings
Compiler errors C2000 - C3999, C7000 - C7999