Compiler errors C2700 Through C2799

The articles in this section of the documentation explain a subset of the error messages that are 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.

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 C2700 'type': cannot be thrown (use /W4 for more info)
Compiler error C2701 'function': a function template/generic cannot be a friend of a local class
Compiler error C2702 __except may not appear in termination block
Compiler error C2703 illegal __leave statement
Compiler error C2704 'function': __va_start intrinsic only allowed in varargs
Compiler error C2705 'label': illegal jump into 'exception_block' scope
Compiler error C2706 illegal __except without matching __try (missing '}' in __try block?)
Compiler error C2707 'identifier': bad context for intrinsic function
Compiler error C2708 'identifier': actual parameters length in bytes differs from previous call or reference
Compiler error C2709 'identifier': formal parameters length in bytes differs from previous declaration
Compiler error C2710 'identifier': '__declspec(modifier)' can only be applied to a function returning a pointer
Compiler error C2711 'function': this function cannot be compiled as managed, consider using #pragma unmanaged
Compiler error C2712 Cannot use __try in functions that require object unwinding
Compiler error C2713 Only one form of exception handling permitted per function
Compiler error C2714 alignof(void) is not allowed
Compiler error C2715 'type': cannot throw or catch this type
Compiler error C2716 Obsolete.
Compiler error C2717 Obsolete.
Compiler error C2718 'type': actual parameter with requested alignment of number won't be aligned
Compiler error C2719 'parameter': formal parameter with requested alignment of number won't be aligned
Compiler error C2720 'identifier': 'specifier' storage-class specifier illegal on members
Compiler error C2721 'specifier': storage-class specifier illegal between operator keyword and type
Compiler error C2722 '::operator': illegal following operator command; use 'operator operator'
Compiler error C2723 'function': 'specifier' specifier illegal on function definition
Compiler error C2724 'function': 'static' should not be used on member functions defined at file scope
Compiler error C2725 'type': unable to throw or catch a managed/WinRT object by value or reference
Compiler error C2726 'gcnew' may only be used to create an object with managed/WinRT type
Compiler error C2727 Obsolete.
Compiler error C2728 'type': a native array cannot contain this type
Compiler error C2729 Obsolete.
Compiler error C2730 'class': cannot be a base class of itself
Compiler error C2731 'function': function cannot be overloaded
Compiler error C2732 linkage specification contradicts earlier specification for 'function'
Compiler error C2733 'function': second C linkage of overloaded function not allowed
Compiler error C2734 'identifier': 'const' object must be initialized if not 'extern'
Compiler error C2735 'keyword' keyword is not permitted in formal parameter type specifier
Compiler error C2736 'keyword' keyword is not permitted in cast
Compiler error C2737 'identifier': const/constexpr object must be initialized
Compiler error C2738 'operator type': is ambiguous or is not a member of 'class'
Compiler error C2739 'number': explicit managed/WinRT array dimensions must be between 1 and 32
Compiler error C2740 value of operand 'number' is out of range 'lower_bound - upper_bound'
Compiler error C2741 frame size too large
Compiler error C2742 Obsolete.
Compiler error C2743 'type': cannot catch a native type with __clrcall destructor or copy constructor
Compiler error C2744 'operator' is not a valid CLR/WinRT operator
Compiler error C2745 'token': this token cannot be converted to an identifier
Compiler error C2746 Obsolete.
Compiler error C2747 Obsolete.
Compiler error C2748 managed/WinRT array creation must have array size or array initializer
Compiler error C2749 'type': can only throw or catch handle to a managed class with /clr:safe
Compiler error C2750 'type': cannot use 'new' on the reference type; use 'gcnew' instead
Compiler error C2751 'parameter': the name of a function parameter cannot be qualified
Compiler error C2752 'template': more than one partial specialization matches the template argument list
Compiler error C2753 'template': partial specialization cannot match argument list for primary template
Compiler error C2754 'template': a partial specialization cannot have a dependent non-type template parameter
Compiler error C2755 'parameter': non-type parameter of a partial specialization must be a simple identifier
Compiler error C2756 'template': default template arguments not allowed on a partial specialization
Compiler error C2757 'identifier': a symbol with this name already exists and therefore this name cannot be used as a namespace name
Compiler error C2758 'member': a member of reference type must be initialized
Compiler error C2759 in-line assembler reports: error_message
Compiler error C2760 syntax error: expected 'token1' not 'token2'
Compiler error C2761 'function': member function redeclaration not allowed
Compiler error C2762 'template': invalid expression as a template argument for 'parameter'
Compiler error C2763 'template': invalid use of a string literal as a template argument for 'parameter'
Compiler error C2764 'parameter': template parameter not used or deducible in partial specialization 'specialization'
Compiler error C2765 'function': an explicit specialization of a function template cannot have any default arguments
Compiler error C2766 explicit specialization; 'specialization' has already been defined
Compiler error C2767 managed/WinRT array dimension mismatch: expected number argument(s) - number provided
Compiler error C2768 'function': illegal use of explicit template arguments
Compiler error C2769 you cannot brace initialize a managed/WinRT array in a base/member initializer list
Compiler error C2770 invalid explicit template/generic argument(s) for 'template'
Compiler error C2771 #import only permitted at global or namespace scope
Compiler error C2772 Obsolete.
Compiler error C2773 #import and #using available only in C++ compiler
Compiler error C2774 'identifier': no 'put' method is associated with this property
Compiler error C2775 'identifier': no 'get' method is associated with this property
Compiler error C2776 only one 'get' method can be specified per property
Compiler error C2777 only one 'put' method can be specified per property
Compiler error C2778 improperly formed GUID in __declspec(uuid())
Compiler error C2779 'declaration': property methods can only be associated with non-static data members
Compiler error C2780 'declaration': expects number arguments - number provided
Compiler error C2781 'declaration': expects at least number argument - number provided
Compiler error C2782 'declaration': template/generic parameter 'parameter' is ambiguous
Compiler error C2783 'declaration': could not deduce template/generic argument for 'identifier'
Compiler error C2784 'declaration': could not deduce template/generic argument for 'type1' from 'type2'
Compiler error C2785 'declaration1' and 'declaration2' have different return types
Compiler error C2786 'type': invalid operand for __uuidof
Compiler error C2787 'identifier': no GUID has been associated with this object
Compiler error C2788 'identifier': more than one GUID associated with this object
Compiler error C2789 'identifier': an object of const-qualified type must be initialized
Compiler error C2790 'super': this keyword can only be used within the body of class member function
Compiler error C2791 illegal use of 'super': 'class' does not have any base classes
Compiler error C2792 'super': this keyword must be followed by '::'
Compiler error C2793 'token': unexpected token following '::', identifier or keyword 'operator' expected
Compiler error C2794 'identifier': is not a member of any direct or indirect base class of 'class'
Compiler error C2795 'super::identifier' is not a member function
Compiler error C2796 'ref new' may only be used to create an instance of a WinRT type
Compiler error C2797 (Obsolete) 'identifier': list initialization inside member initializer list or non-static data member initializer is not implemented
Compiler error C2798 'super::identifier' is ambiguous
Compiler error C2799 'identifier': an object of const-qualified class type without a user-provided default constructor must be initialized

See also

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