Compiler errors C7500 through C7999
The articles in this section of the documentation explain a subset of the error messages generated by the compiler.
Important
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.
Note
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. Some compiler error topics were created that are not emitted by the compiler and now redirect to this page instead.
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