Compiler errors C3500 through C3999

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 C3500 invalid ProgID 'progid'
Compiler error C3501 there is no typelib registered for ProgID 'progid'
Compiler error C3502 cannot obtain LIBID for ProgID 'progid'
Compiler error C3503 character '0xvalue' is not allowed in a raw string literal
Compiler error C3504 cannot create GUID from string 'string'
Compiler error C3505 cannot load type library 'library'
Compiler error C3506 there is no typelib registered for LIBID 'library'
Compiler error C3507 a ProgID can have no more than 39 characters 'progid'; nor contain any punctuation apart from '.'; nor start with a digit
Compiler error C3508 'type': is not a valid Automation type
Compiler error C3509 'type': invalid Automation return type; when a parameter is marked 'retval', the return type must be 'void', 'HRESULT' or 'SCODE'
Compiler error C3510 cannot locate dependent type library library_name
Compiler error C3511 'identifier': a call to a delegating constructor shall be the only member-initializer
Compiler error C3512 the delimiting character sequence for a raw string literal shall have no more than 16 characters
Compiler error C3513 'string': unsupported raw string literal delimiter character
Compiler error C3514 'character' (value): unsupported raw string literal delimiter character
Compiler error C3515 if an argument for a class template partial specialization is a pack expansion it shall be the last argument
Compiler error C3516 unexpected end-of-file found while processing the raw string literal; delimiter sequence 'string' was not matched
Compiler error C3517 'identifier' an alias-declaration cannot have a type that contains 'auto'
Compiler error C3518 'identifier': in a direct-list-initialization context the type for 'type' can only be deduced from a single initializer expression
Compiler error C3519 'parameter': invalid parameter to embedded_idl attribute
Compiler error C3520 'identifier': parameter pack must be expanded in this context
Compiler error C3521 'identifier' is not a parameter pack
Compiler error C3522 'type': parameter pack cannot be expanded in this context
Compiler error C3523 'sizeof...' requires as its argument an unexpanded parameter pack
Compiler error C3524 'identifier': 'sizeof' cannot be applied to a parameter pack. Did you mean to use 'sizeof...'?
Compiler error C3525 'parameter': if a class template has a template parameter pack it must appear at the end of the template parameter list
Compiler error C3526 '...' cannot be applied to 'this'
Compiler error C3527 'identifier' is not a valid operand for 'sizeof...'. Did you mean to use 'sizeof'?
Compiler error C3528 'identifier1': the number of elements in this pack expansion does not match the number of elements in 'identifier2'
Compiler error C3529 'parameter': a template parameter pack cannot have a default argument
Compiler error C3530 'type' cannot be combined with any other type-specifier
Compiler error C3531 'identifier': a symbol whose type contains 'type' must have an initializer
Compiler error C3532 the element type of an array cannot be a type that contains 'type'
Compiler error C3533 a parameter cannot have a type that contains 'type'
Compiler error C3534 Obsolete.
Compiler error C3535 cannot deduce type for 'type1' from 'type2'
Compiler error C3536 'identifier': cannot be used before it is initialized
Compiler error C3537 you cannot cast to a type that contains 'type'
Compiler error C3538 in a declarator-list 'type' must always deduce to the same type
Compiler error C3539 a template-argument cannot be a type that contains 'type'
Compiler error C3540 sizeof cannot be applied to a type that contains 'type'
Compiler error C3541 typeid cannot be applied to a type that contains 'type'
Compiler error C3542 'identifier': a virtual member function shall not have a return type that contains 'type'
Compiler error C3543 'type': does not contain a parameter pack
Compiler error C3544 'parameter': parameter pack expects a type template argument
Compiler error C3545 'parameter': parameter pack expects a non-type template argument
Compiler error C3546 '...': there are no parameter packs available to expand
Compiler error C3547 template parameter 'parameter' cannot be used because it follows a template parameter pack and cannot be deduced from the function parameters of 'function'
Compiler error C3548 'identifier': parameter pack cannot be used in this context
Compiler error C3549 'value': a function parameter pack cannot have a default argument
Compiler error C3550 only plain 'decltype(auto)' is allowed in this context
Compiler error C3551 if a trailing return type is used then the leading return type shall be the single type-specifier 'auto' (not 'type')
Compiler error C3552 expected 'decltype(auto)'
Compiler error C3553 decltype expects an expression not a type
Compiler error C3554 'type' cannot be combined with any other type-specifier
Compiler error C3555 incorrect argument to 'decltype'
Compiler error C3556 'expression': incorrect argument to 'decltype'
Compiler error C3557 Obsolete.
Compiler error C3558 Obsolete.
Compiler error C3559 recursive call to 'function': recursion is detected when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3560 'function': IL is not available when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3561 tile barrier operation found in control flow that is not tile-uniform when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3562 intrinsic function 'function' is limited to have no more than number parameters
Compiler error C3563 Infinite loop detected when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3564 reading uninitialized value when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3565 The total amount of tile_static memory (number bytes) exceeds the limit of number bytes when compiling the call graph for the concurrency::parallel_for_each
Compiler error C3566 blocks with side effects nested too deeply when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3567 divide or mod by zero detected when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3568 sum of registers exceeds the limit of number when compiling the call graph for the concurrency::parallel_for_each. Please simplify your program
Compiler error C3569 race condition detected when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3570 illegal use of amp restricted scope when compiling with /clr
Compiler error C3571 'type': illegal compute domain argument; not a class type
Compiler error C3572 'type': illegal compute domain argument; missing public member: 'static const int rank' or rank value is non-positive
Compiler error C3573 The number of instances of concurrency::graphics::sampler passed to concurrency::parallel_for_each cannot exceed number
Compiler error C3574 'type': illegal tile extents: must be positive and (1) Z <= number; (2) ZYX <= number
Compiler error C3575 'type': illegal compute domain argument; missing public member: 'concurrency::index<number> _map_index(const concurrency::index<number>&) restrict(amp)'
Compiler error C3576 'type': concurrency::details::_Parallel_for_each argument #number has unsupported type
Compiler error C3577 concurrency::parallel_for_each kernel argument is illegal: cannot resolve call to member 'void operator()(type) restrict(amp)'
Compiler error C3578 The size of the function object passed to concurrency::parallel_for_each cannot exceed number bytes
Compiler error C3579 The number of read-only instances of concurrency::array and concurrency::graphics::texture passed to concurrency::parallel_for_each cannot exceed number
Compiler error C3580 The number of writable instances of concurrency::array and concurrency::graphics::texture passed to concurrency::parallel_for_each cannot exceed number
Compiler error C3581 'type': unsupported type in amp restricted code
Compiler error C3582 Obsolete.
Compiler error C3583 'identifier': the size of the variable (number bytes) is larger than the maximum size (number bytes) supported in amp restricted code
Compiler error C3584 unsupported usage of tile_static on 'identifier'
Compiler error C3585 'identifier' has unsupported storage class in amp restricted code
Compiler error C3586 'identifier': using global or static variables is unsupported in amp restricted code
Compiler error C3587 dynamic_cast is unsupported in amp restricted code
Compiler error C3588 casting from 'type1' to 'type2' is unsupported in amp restricted code
Compiler error C3589 'string': unsupported usage of string literals in amp restricted code
Compiler error C3590 'token': by-reference capture or 'this' capture is unsupported if the lambda is amp restricted
Compiler error C3591 typeid operator is unsupported in amp restricted code
Compiler error C3592 Inline native assembly ('__asm') is unsupported in amp restricted code
Compiler error C3593 'goto' is unsupported in amp restricted code
Compiler error C3594 exception handling (try, catch, throw etc.) is unsupported in amp restricted code
Compiler error C3595 constant value is out of supported range in amp restricted code
Compiler error C3596 'parameter' ('type'): variable captured by lambda has unsupported type in amp restricted code
Compiler error C3597 'parameter': 'identifier' is not allowed to be captured by value if the lambda is amp restricted
Compiler error C3598 label statement is unsupported in amp restricted code
Compiler error C3599 'operator': cannot perform pointer arithmetic on pointer to bool in amp restricted code
Compiler error C3600 'function': use of tile_static memory detected when compiling the call graph for the non-tiling concurrency::parallel_for_each at: 'function'
Compiler error C3601 'type': is invalid argument type for amp diagnostic function 'function'
Compiler error C3602 Unsupported control flow detected when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3603 'symbol': type 'type' not yet supported
Compiler error C3604 'identifier': can only create a managed object on the gc heap
Compiler error C3605 The total number of samplers (number captured and number predefined) exceed number when compiling the call graph for the concurrency::parallel_for_each at: 'function'
Compiler error C3606 intrinsic function 'function' cannot be mapped to HLSL
Compiler error C3609 'identifier': a 'sealed/final' function must be virtual
Compiler error C3610 'identifier': value type must be 'boxed' before method 'method' can be called
Compiler error C3611 'identifier': a sealed function cannot have a pure-specifier
Compiler error C3612 'identifier': a sealed class cannot have any pure virtual methods
Compiler error C3613 missing return type after '->' ('int' assumed)
Compiler error C3614 Differing values for pack size within the same class; previous was 'value', new value is 'value'
Compiler error C3615 constexpr function 'function' cannot result in a constant expression
Compiler error C3616 Obsolete.
Compiler error C3617 initializers of structured bindings must be of array or non-union class type; type 'type_name' is not permitted
Compiler error C3618 'declaration': a method marked DllImport cannot be defined
Compiler error C3619 a template cannot be declared within a managed/WinRT type
Compiler error C3620 'type': setting the alignment is not allowed on WinRT types
Compiler error C3621 'type': only the default packing value (number) is allowed for WinRT types
Compiler error C3622 type': a class declared as 'keyword' cannot be instantiated
Compiler error C3623 'identifier': bit fields are not supported in managed/WinRT types
Compiler error C3624 'type': use of this type requires a reference to assembly/module 'identifier'
Compiler error C3625 'class': a native type cannot derive from a managed/WinRT type 'type'
Compiler error C3626 'identifier': 'keyword' keyword can only be used on COM interfaces, member functions and data members that are pointers to delegates
Compiler error C3627 Only a value type can be boxed
Compiler error C3628 'class': managed/WinRT classes only support public inheritance
Compiler error C3629 'token': a capture default can only appear at the beginning of a lambda capture list
Compiler error C3630 error when processing the token 'token' (Obsolete in Visual Studio 2022.)
Compiler error C3631 'event': cannot overload managed/WinRT events
Compiler error C3632 'event': illegal style of event for construct
Compiler error C3633 cannot define 'identifier' as a member of managed 'class'
Compiler error C3634 'member': cannot define an abstract method of a managed/WinRT class
Compiler error C3635 'identifier': cannot be applied to a managed/WinRT class (use 'identifier' instead)
Compiler error C3636 'identifier': cannot be applied to this type
Compiler error C3637 'function': a friend function definition cannot be a specialization of a function template/generic
Compiler error C3638 'operator': the standard boxing and unboxing conversion operators cannot be redefined
Compiler error C3639 a lambda that is part of a default argument can only have an init-capture
Compiler error C3640 'member': a referenced or virtual member function of a local class must be defined
Compiler error C3641 'function': invalid calling convention 'convention' for function compiled with /clr:pure or /clr:safe
Compiler error C3642 'function': cannot call a function with __clrcall calling convention from native code
Compiler error C3643 '%$S': cannot decompose type with non-static data-members in both '%$S' and '%$S'
Compiler error C3644 'function': cannot compile the function to generate managed code
Compiler error C3645 'function': __clrcall cannot be used on functions compiled to native code
Compiler error C3646 'identifier': unknown override specifier
Compiler error C3647 Obsolete.
Compiler error C3648 this explicit override syntax is not supported for managed types
Compiler error C3649 this explicit override syntax is not allowed with /ZW
Compiler error C3650 'member': cannot be used as an explicit override, must be a virtual member function of a base class
Compiler error C3651 'member': cannot be used as an explicit override, must be a member of a base class
Compiler error C3652 'member': a function that explicitly overrides must be virtual
Compiler error C3653 'identifier': cannot be used as a named override: a function being overridden not found; did you forget to name the function explicitly, using a:: operator?
Compiler error C3654 'token': syntax error in explicit override
Compiler error C3655 'member': function already explicitly overridden
Compiler error C3656 'keyword': override specifier cannot be repeated
Compiler error C3657 a destructor/finalizer cannot explicitly override or be explicitly overridden
Compiler error C3658 Obsolete.
Compiler error C3659 'member': override specifier 'keyword' is not supported
Compiler error C3660 'member1': hides inherited member 'member2'
Compiler error C3661 explicit override list did not find any methods to override
Compiler error C3662 'member': override specifier 'keyword' only allowed on member functions of managed/WinRT classes
Compiler error C3663 Obsolete.
Compiler error C3664 'member': cannot be used as an explicit override, must have 'public' or 'protected' accessibility
Compiler error C3665 'member': override specifier 'keyword' not allowed on a destructor/finalizer
Compiler error C3666 'constructor': override specifier 'keyword' not allowed on a constructor
Compiler error C3667 'attribute': attribute does not support pack expansion
Compiler error C3668 'member': method with override specifier 'override' did not override any base class methods
Compiler error C3669 'member': override specifier 'override' not allowed on static member functions or constructors
Compiler error C3670 'member': cannot override inaccessible base class method 'member'
Compiler error C3671 'member': function does not override 'member'
Compiler error C3672 pseudo-destructor expression can only be used as part of a function call
Compiler error C3673 'class': class does not have a copy-constructor
Compiler error C3674 could not find standard library module 'module'
Compiler error C3675 'function': is reserved because 'property' is defined
Compiler error C3676 'class': ref class and base class have incompatible attributes '[attribute]'
Compiler error C3677 string literal after 'operator' cannot have an encoding prefix
Compiler error C3678 string literal after 'operator' must be the empty string '""""'
Compiler error C3679 expected a literal suffix identifier after 'operator """"'
Compiler error C3680 cannot concatenate user-defined string literals with mismatched literal suffix identifiers
Compiler error C3681 'fallthrough': attribute may only appear in an enclosing switch statement
Compiler error C3682 'operator identifier': literal operator/literal operator template cannot be declared to have 'C linkage'
Compiler error C3683 cannot define both raw literal operator and literal operator template with the same literal suffix identifier
Compiler error C3684 'operator identifier': declaration of literal operator has an invalid parameter list
Compiler error C3685 'operator identifier': literal operator template cannot have function parameters
Compiler error C3686 'operator identifier': literal operator template must have exactly one template parameter that is a parameter pack
Compiler error C3687 'operator identifier': literal operator template must have non-type template parameter of type 'char'
Compiler error C3688 invalid literal suffix 'suffix'; literal operator or literal operator template 'operator identifier' not found
Compiler error C3689 'operator identifier': literal operator/literal operator template must be in a global or namespace scope
Compiler error C3690 expected a string literal, but found a user-defined string literal instead
Compiler error C3691 invalid literal prefix 'prefix'
Compiler error C3692 non-scalar type 'type_name' cannot be used in a pseudo-destructor expression
Compiler error C3693 'identifier': bit-fields cannot be captured by reference
Compiler error C3694 a structured binding declaration can contain no specifiers other than 'static', 'thread_local', 'auto', and cv-qualifiers
Compiler error C3695 '%$S': cannot decompose a type containing an anonymous union or struct
Compiler error C3696 'keyword': cannot use this qualifier on '%'
Compiler error C3697 'keyword': cannot use this qualifier on '^'
Compiler error C3698 'type': cannot use this type as argument of 'operator'
Compiler error C3699 'operator': cannot use this indirection on type 'type'
Compiler error C3700 filename is missing terminating '%c'
Compiler error C3701 'function': event source has no events
Compiler error C3702 ATL is required for COM events
Compiler error C3703 'event_handler': an event handler method must have the same storage class as the source 'event'
Compiler error C3704 'member': a vararg method cannot fire events
Compiler error C3705 'function': cannot find eventing interface
Compiler error C3706 'function': must be a COM interface to fire COM events
Compiler error C3707 'member': dispinterface method must have a dispid
Compiler error C3708 'function': improper use of 'keyword'; must be a member of a compatible event source
Compiler error C3709 'function': improper syntax for specifying event in __hook/__unhook
Compiler error C3710 'function': improper syntax for specifying event handler in __hook/__unhook
Compiler error C3711 'event': a non-managed event source method must return void or an integral type
Compiler error C3712 'event_handler': an event handler method must return the same type as the source 'event'
Compiler error C3713 'event_handler': an event handler method must have the same function parameters as the source 'event'
Compiler error C3714 'event_handler': an event handler method must have the same calling convention as the source 'event'
Compiler error C3715 'pointer': must be a pointer to 'type'
Compiler error C3716 '%$L': building precompiled header with module constructs is not allowed
Compiler error C3717 'member': a method that fires events cannot be defined
Compiler error C3718 can only call '__keyword' in the context of a member function of the receiving class
Compiler error C3719 'member': an interface based event source can only be used for COM events
Compiler error C3720 'type': can only implement IDispatch on a dual or dispinterface
Compiler error C3721 'signature': incompatible signature for event
Compiler error C3722 a generic event is not allowed
Compiler error C3723 'function': could not resolve event
Compiler error C3724 must #include <windows.h> to use multi-threading with events
Compiler error C3725 Obsolete.
Compiler error C3726 Could not apply SecureHotPatch transformations to '%s'. explanation
Compiler error C3727 'event': a managed event must be a member function or a data member that is a pointer to a delegate
Compiler error C3728 'event': event does not have a raise method
Compiler error C3729 attribute specifier cannot contain both using namespace prefix and scoped attribute
Compiler error C3730 Obsolete.
Compiler error C3731 incompatible event 'event' and handler 'event_handler'; event source and event handler must have the same event type
Compiler error C3732 'interface': a custom interface that fires COM events cannot inherit from IDispatch
Compiler error C3733 'event': improper syntax for specifying a COM event; did you forget '__interface'?
Compiler error C3734 'class': a managed/WinRT class cannot be a coclass
Compiler error C3735 template or generic redefined
Compiler error C3736 'member': must be a method or, in the case of managed events, optionally a data member
Compiler error C3737 'identifier': a delegate may not have an explicit calling convention
Compiler error C3738 'convention': the calling convention of the explicit instantiation must match that of the template being instantiated
Compiler error C3739 'class': syntax is only supported when the 'layout_dependent' parameter of event_receiver is true
Compiler error C3740 'template': templates cannot source or receive events
Compiler error C3741 'class': must be a coclass when the 'layout_dependent' parameter of event_receiver is true
Compiler error C3742 'token1': unbalanced token sequence in attribute argument of 'attribute', expected 'token2'
Compiler error C3743 can only hook/unhook an entire interface when the 'layout_dependent' parameter of event_receiver is true
Compiler error C3744 __unhook must have at least 3 arguments for managed events
Compiler error C3745 'function': only an event can be 'raised'
Compiler error C3746 standard attribute 'identifier' may appear at most once in an attribute list
Compiler error C3747 missing default template/generic parameter: parameter number
Compiler error C3748 'interface': unmanaged interfaces may not fire events
Compiler error C3749 'attribute': a custom attribute may not be used inside a function
Compiler error C3750 'token': unexpected token in attribute list
Compiler error C3751 'identifier': unexpected identifier in attribute list
Compiler error C3752 'attribute': cannot classify attribute; 'keyword' should not be used in this context
Compiler error C3753 a generic property is not allowed
Compiler error C3754 delegate constructor: member function 'member' cannot be called on an instance of type 'type'
Compiler error C3755 'identifier': a delegate may not be defined
Compiler error C3756 Obsolete.
Compiler error C3757 'type': type not allowed for 'constexpr' function (Obsolete in Visual Studio 2022.)
Compiler error C3758 'member': virtual function cannot be declared 'constexpr'
Compiler error C3759 'member': member function of non-literal type cannot be declared 'constexpr' (Obsolete in Visual Studio 2022.)
Compiler error C3760 please use __property keyword to declare property in managed/WinRT 'class'
Compiler error C3761 'function': 'retval' can only appear on the last argument of a function
Compiler error C3762 unable to process attribute 'attribute'
Compiler error C3763 'type': 'retval' and 'out' can only appear on a data-pointer type
Compiler error C3764 'member': cannot override base class method 'member'
Compiler error C3765 'event': cannot define an event in a class/struct 'type' marked as an event_receiver
Compiler error C3766 'type' must provide an implementation for the interface method 'function'
Compiler error C3767 'function': candidate function(s) not accessible
Compiler error C3768 cannot take the address of a virtual vararg function in pure managed code
Compiler error C3769 'identifier': a nested class cannot have the same name as the immediately enclosing class
Compiler error C3770 'type': is not a valid base class
Compiler error C3771 'identifier': friend declaration cannot be found in the nearest namespace scope
Compiler error C3772 'identifier': invalid friend template declaration
Compiler error C3773 please use /await compiler switch to enable coroutines
Compiler error C3774 cannot find 'scope::identifier': Please include header_name header
Compiler error C3775 return type of 'function' should not be 'type'
Compiler error C3776 cannot return an expression of type void in a coroutine with non-void eventual return type
Compiler error C3777 'function': a coroutine cannot take a variable argument list
Compiler error C3778 alloca: cannot be used in a coroutine
Compiler error C3779 'function': a function that returns 'auto' cannot be used before it is defined
Compiler error C3780 'function': a conversion function that returns 'auto' cannot be used before it is defined
Compiler error C3781 'keyword': cannot be a used in a coroutine of type 'type'. Either keyword or keyword must be present in associated promise_type
Compiler error C3782 type: a coroutine's promise cannot contain both keyword and keyword
Compiler error C3783 'identifier': cannot be a coroutine
Compiler error C3784 keyword expression cannot appear in this context
Compiler error C3785 the first template argument to 'std::integer_sequence' must be an integer type
Compiler error C3786 the second template argument to 'std::make_integer_sequence' must be an integer constant greater than or equal to zero
Compiler error C3787 cannot deduce the return type of this coroutine
Compiler error C3788 this function cannot be a coroutine: 'type_name' is not a class
Compiler error C3789 this function cannot be a coroutine: '%$T' does not declare the member '%$I()'
Compiler error C3790 capturing '*this' requires '%1$M'
Compiler error C3791 'this' cannot be explicitly captured when the default capture mode is by copy (=)
Compiler error C3792 unrecognized hash algorithm '%$I'
Compiler error C3793 hash value for algorithm '%$I' must be exactly %u characters long
Compiler error C3794 file '%$S' specified in #pragma file_hash is also part of the current compilation unit
Compiler error C3795 multiple conflicting hash values for file '%$S'
Compiler error C3796 'operator %$I': is neither a string literal operator template nor a numeric literal operator template
Compiler error C3797 'keyword': event declaration cannot have override specifier (should be placed on event add/remove/raise methods instead)
Compiler error C3798 'keyword': property declaration cannot have override specifier (should be placed on property get/set methods instead)
Compiler error C3799 indexed property cannot have an empty parameter list
Compiler error C3800 'declaration': cannot mix properties and events
Compiler error C3801 'attribute': attribute may not have an argument clause
Compiler error C3802 Obsolete.
Compiler error C3803 'property': property has a type which is incompatible with one of its accessors 'accessor'
Compiler error C3804 'member': the accessor methods for a property must either be all static or all non-static
Compiler error C3805 'token': unexpected token, expected either '}' or a ','
Compiler error C3806 'token': unexpected token, expected either a '{' or a member-initializer
Compiler error C3807 'type': a class with the ComImport attribute cannot derive from 'type', only interface implementation is allowed
Compiler error C3808 'type': a class with the ComImport attribute cannot define member 'member', only abstract or dllimport functions are allowed
Compiler error C3809 'type': a managed/WinRT type cannot have any friend functions/classes/interfaces
Compiler error C3810 '%1$S': cannot decompose type with ambiguous base class 'type_name'
Compiler error C3811 Obsolete.
Compiler error C3812 '__property' must be the first token in a property declaration
Compiler error C3813 a property declaration can only appear within the definition of a managed/WinRT type
Compiler error C3814 Obsolete.
Compiler error C3815 return type of method 'member' must match type of the last parameter of a setter
Compiler error C3816 'class/struct member' was previously declared or defined with a different managed/WinRT modifier
Compiler error C3817 'declaration': property can only be applied to a function
Compiler error C3818 array property declaration 'property' shall not overload an index property 'property'
Compiler error C3819 Obsolete.
Compiler error C3820 'identifier': initializers must be managed
Compiler error C3821 'function': managed type or function cannot be used in an unmanaged function
Compiler error C3822 Obsolete.
Compiler error C3823 Obsolete.
Compiler error C3824 'type': this type cannot appear in this context (function parameter, return type, or a static member)
Compiler error C3825 'type': a managed/WinRT class can only support managed/WinRT events
Compiler error C3826 Obsolete.
Compiler error C3827 standard attribute 'deprecated' may have either no arguments or one string literal describing the reason
Compiler error C3828 placement arguments cannot be specified for a 'keyword' expression for type 'type'
Compiler error C3829 standard attribute 'noreturn' may only be applied to functions
Compiler error C3830 'type1': cannot inherit from 'type2', value types can only inherit from interface classes
Compiler error C3831 'identifier': 'type' cannot have a pinned data member or a member function returning a pinning pointer
Compiler error C3832 'typelib': type library looks as if it was built for 32-bit pointers; please change the 'ptrsize' qualifier
Compiler error C3833 'type': invalid target type for identifier
Compiler error C3834 illegal explicit cast to a pinning pointer; use a pinned local variable instead
Compiler error C3835 Obsolete.
Compiler error C3836 a static constructor is not allowed to have a member initializer list
Compiler error C3837 attributes are not allowed in this context
Compiler error C3838 cannot inherit from 'type'
Compiler error C3839 cannot change alignment in a managed/WinRT type
Compiler error C3840 Obsolete.
Compiler error C3841 Obsolete.
Compiler error C3842 'identifier': 'const' and 'volatile' qualifiers on member functions of managed/WinRT types are not supported
Compiler error C3843 'identifier': ref-qualifiers on member functions of managed/WinRT types are not supported
Compiler error C3844 'identifier': cannot import symbol from 'source': as 'identifier' already exists in the current scope
Compiler error C3845 Obsolete.
Compiler error C3846 'identifier': cannot import symbol from 'source': as 'identifier' has already been imported from another assembly 'assembly'
Compiler error C3847 a noexcept-specifier on an explicit instantiation must match that of the template being instantiated
Compiler error C3848 expression having type 'type' would lose some const-volatile qualifiers in order to call 'identifier'
Compiler error C3849 function-style call on an expression of type 'type' would lose const and/or volatile qualifiers for all number available operator overloads
Compiler error C3850 'token': a universal-character-name specifies an invalid character
Compiler error C3851 'token': a universal-character-name cannot designate a character in the basic character set
Compiler error C3852 'member' having type 'type': aggregate initialization could not initialize this member
Compiler error C3853 '=': re-initializing a reference or assignment through a reference-to-function is illegal
Compiler error C3854 expression to left of '=' evaluates to a function. Cannot assign to a function (a function is not an l-value)
Compiler error C3855 'function': template/generic parameter 'identifier' is incompatible with the declaration
Compiler error C3856 'class': class is not a class template/generic
Compiler error C3857 'template': multiple template/generic parameter lists are not allowed
Compiler error C3858 'identifier': cannot be redeclared in current scope
Compiler error C3859 virtual memory range for PCH exceeded; please recompile with a command line option of '-Zmnumber' or greater
Compiler error C3860 template/generic argument list following class template/generic name must list parameters in the order used in template/generic parameter list
Compiler error C3861 'identifier': identifier not found
Compiler error C3862 'function': cannot compile an unmanaged function with /clr:pure or /clr:safe
Compiler error C3863 array type 'type' is not assignable
Compiler error C3864 Obsolete.
Compiler error C3865 'keyword': can only be used on native member functions
Compiler error C3866 destructor/finalizer call missing argument list
Compiler error C3867 'function': non-standard syntax; use '&' to create a pointer to member
Compiler error C3868 'type': constraints on generic parameter 'parameter' differ from those on the declaration
Compiler error C3869 gcnew constraint is missing empty parameter list '()'
Compiler error C3870 'parameter': '__declspec(specifier)' can only be applied to parameters of integral type
Compiler error C3871 'parameter': '__declspec(guard(overflow))' is only supported on the first 64 parameters of a function
Compiler error C3872 '0xvalue': this character is not allowed in an identifier
Compiler error C3873 '0xvalue': this character is not allowed as a first character of an identifier
Compiler error C3874 return type of 'identifier' should be 'type1' instead of 'type2'
Compiler error C3875 call of non-static member function missing argument list
Compiler error C3876 hexadecimal floating literal requires an exponent
Compiler error C3877 invalid type argument to the TypeForwardedTo attribute
Compiler error C3878 syntax error: unexpected token '%1$L' following '%2s'
Compiler error C3879 'member': cannot be an initonly data member
Compiler error C3880 'member': cannot be a literal data member
Compiler error C3881 can only inherit constructor from direct base
Compiler error C3882 'class': constructor has already been inherited from 'class'
Compiler error C3883 'member': an initonly static data member must be initialized
Compiler error C3884 'type': An array of unknown size cannot be value-initialized
Compiler error C3885 'type': An array of unknown size cannot be initialized with an empty initializer list
Compiler error C3886 'member': a literal data member must be initialized
Compiler error C3887 'member': the initializer for a literal data member must be a constant expression
Compiler error C3888 'member': the const expression associated with this literal data member is not supported by C++/CLI
Compiler error C3890 'member': you cannot take the address of a literal data member
Compiler error C3891 'member': a literal data member cannot be used as a l-value
Compiler error C3892 'variable': you cannot assign to a variable that is const
Compiler error C3893 'member': l-value use of initonly data member is only allowed in an instance constructor of class 'class'
Compiler error C3894 'member': l-value use of initonly static data member is only allowed in the class constructor of class 'class'
Compiler error C3895 'member': type data members cannot be 'volatile'
Compiler error C3896 'member': improper initializer: this literal data member can only be initialized with 'nullptr'
Compiler error C3897 Obsolete.
Compiler error C3898 'member': type data members can only be members of managed types
Compiler error C3899 'member': l-value use of initonly data member is not allowed directly within a parallel region in class 'class'
Compiler error C3900 'member': not allowed in current scope
Compiler error C3901 'function': must have return type 'type'
Compiler error C3902 'function': type of last parameter must be 'type'
Compiler error C3903 'property': does not have set or get method
Compiler error C3904 'property': must specify number parameter(s)
Compiler error C3905 unaligned accesses are not supported for intrinsic type 'type'
Compiler error C3906 intrinsic type 'type' is not a supported return or argument type for vararg or unprototyped functions
Compiler error C3907 cannot jump to a label that is in a different 'if constexpr' statement or substatement
Compiler error C3908 access level less restrictive than that of 'identifier'
Compiler error C3909 a managed/WinRT event declaration must occur in a managed/WinRT type
Compiler error C3910 'event': must define member 'member'
Compiler error C3911 'member': function must have type 'type'
Compiler error C3912 'event': type of event must be a delegate type
Compiler error C3913 a default property must be indexed
Compiler error C3914 a default property cannot be static
Compiler error C3915 'identifier' has no default indexed property (class indexer)
Compiler error C3916 function parameter with index %d and requested alignment of %d won't be aligned
Compiler error C3917 'token': obsolete construct declaration style (did you mean to use '[' ']' instead?)
Compiler error C3918 usage requires 'identifier' to be a data member
Compiler error C3919 'function': function must have type 'return_type (type)'
Compiler error C3920 'operator': cannot define a postfix increment/decrement CLR/WinRT operator Calling the postfix CLR/WinRT operator will call the corresponding prefix CLR/WinRT operator (op_Increment/op_Decrement), but with postfix semantics
Compiler error C3921 Obsolete.
Compiler error C3923 'member': local class, struct or union definitions are not allowed in a member function of a managed/WinRT class
Compiler error C3924 error in argument #number of delegate constructor call 'constructor':
Compiler error C3925 expected a loop (for, while, or do) following 'directive_name' directive
Compiler error C3926 invalid constant in 'parallel' directive
Compiler error C3927 '->': trailing return type is not allowed after a non-function declarator
Compiler error C3928 '->': trailing return type is not allowed after a parenthesized declarator
Compiler error C3930 'function': no overloaded function has restriction specifiers that are compatible with the ambient context 'context'
Compiler error C3931 'type': cannot call a function that has restriction specifiers that are incompatible with the ambient context
Compiler error C3932 Obsolete.
Compiler error C3933 'class': destructor's restriction specifiers must cover the union of restrictions on all constructors
Compiler error C3934 a function that is in any form of 'main' cannot have restriction specifiers other than restrict(cpu)
Compiler error C3935 'identifier': redefinition; overlapping restriction specifiers
Compiler error C3936 'identifier': unrecognized restriction specifier
Compiler error C3937 empty restriction specifier is not allowed
Compiler error C3938 'identifier': multiple restriction specifiers are not supported on extern \042C\042 functions
Compiler error C3939 'identifier': pointer to member functions, function pointers, references to functions with 'amp' restriction specifier are not allowed
Compiler error C3940 'identifier': identifier not found - possible mismatch between compiler and library versions. Please ensure vccorlib.h/.lib, vccorlib120.dll and c1xx.dll match
Compiler error C3941 'condition': requires '/clr' command line option
Compiler error C3945 'type': unable to throw or catch a winrt object which doesn't derive from Platform::Exception
Compiler error C3946 'type': typeid cannot be applied to this type
Compiler error C3947 'typeid': typeid cannot be applied to a pack expansion
Compiler error C3948 'keyword': a pack expansion cannot appear in this context
Compiler error C3949 a pack expansion, '...', cannot appear in a parenthesized abstract declarator
Compiler error C3950 Obsolete.
Compiler error C3951 Cannot use pointer-to-member in projected WinRT type 'type'. Use a delegate instead.
Compiler error C3952 'type': WinRT does not support 'in/out' arrays. Use 'const Array<T>^' for 'in' and 'WriteOnlyArray<T>' or 'Array<T>^*' for 'out' on public APIs
Compiler error C3953 Cannot use managed class 'type' in WinRT module. (Obsolete in Visual Studio 2022.)
Compiler error C3954 'type': An array returned from a published method on a WinRT type must use the form 'Array<T>^'
Compiler error C3955 'type': A public constructor cannot contain an 'out' parameter or 'WriteOnlyArray<T>'
Compiler error C3956 'type': Type is marked as Exclusive To 'type' and cannot be used as a base of 'derived_type'
Compiler error C3957 'type': cannot use 'new' on a WinRT type; use 'ref new' instead
Compiler error C3958 'type': cannot use 'gcnew' on a WinRT type; use 'ref new' instead
Compiler error C3959 'ref new' may only be used to create an object with WinRT type
Compiler error C3960 Obsolete.
Compiler error C3961 static constructor is not supported
Compiler error C3962 generic class is not supported
Compiler error C3963 multi-dimensional array is not supported
Compiler error C3964 jagged array is not supported
Compiler error C3965 parameter array is not supported
Compiler error C3966 'function': generic function is not supported
Compiler error C3967 error importing 'identifier' from module 'module'
Compiler error C3968 the token 'token' is not valid as module name separator; use period ('.') instead
Compiler error C3969 inconsistent module names: 'module1' and 'module1'
Compiler error C3970 'identifier': 'keyword' can only be applied to 'ref class' or 'ref struct' at global scope or namespace scope
Compiler error C3971 'type': partial definition cannot appear after full definition
Compiler error C3972 'type': 'partial' can only be applied to class declarations or definitions
Compiler error C3973 Unimplemented feature: %$M
Compiler error C3974 '%$S': index variable in OpenMP 'for' statement must have integral type
Compiler error C3975 'class/struct identifier' was previously declared or defined with a different modifier
Compiler error C3976 'identifier1' must be declared as 'public' in order to use 'identifier2'
Compiler error C3977 Usage requires a reference to an assembly that defines 'identifier'
Compiler error C3978 'identifier': a static property is not allowed as a member of a WinRT interface or value type
Compiler error C3979 'type': use attribute 'attribute' instead of 'value'
Compiler error C3980 'type' cannot be emitted into metadata
Compiler error C3981 'type': a value type cannot have any static data members 'identifier'
Compiler error C3982 'type': a value type cannot have any non-public data members 'identifier'
Compiler error C3983 'type': a value type cannot have any public non-data members 'identifier'
Compiler error C3984 'type': a non-value type cannot have any public data members 'identifier'
Compiler error C3985 'identifier': signature of public member contains private type 'member'
Compiler error C3986 'identifier': signature of public member contains native type 'member'
Compiler error C3987 'identifier': signature of public member contains native type 'type'
Compiler error C3988 'type': a native type cannot be public
Compiler error C3989 'type': a nested type cannot be public
Compiler error C3990 'type': attribute 'attribute' cannot be private or nested
Compiler error C3991 'type': cannot implement a non-public or nested interface 'interface'
Compiler error C3992 'identifier': signature of public member contains invalid type 'type'
Compiler error C3993 'type': a value type must contain at least one public field
Compiler error C3994 'type': a value type cannot implement interfaces or have virtual functions
Compiler error C3995 'type': a value type cannot have any event members 'identifier'
Compiler error C3996 Obsolete.
Compiler error C3997 Warbird: message
Compiler error C3998 'c++version': unsupported C++ version; defaulting to 'c++version'
Compiler error C3999 UNKNOWN ERROR message Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information

See also

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