Compiler errors C3500 through C3999
The articles in this section 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 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 | Failed to create virtual memory for PCH |
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' |
See also
C/C++ Compiler and build tools errors and warnings
Compiler errors C2000 - C3999, C7000 - C7999