diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2821.md b/docs/error-messages/compiler-errors-2/compiler-error-c2821.md index d187c40213..aff747245d 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2821.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2821.md @@ -1,20 +1,21 @@ --- -description: "Learn more about: Compiler Error C2821" title: "Compiler Error C2821" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2821" +ms.date: 11/04/2016 f1_keywords: ["C2821"] helpviewer_keywords: ["C2821"] -ms.assetid: e8d71988-a968-4484-94db-e8c3bad74a4a --- # Compiler Error C2821 -first formal parameter to 'operator new' must be 'unsigned int' +> first formal parameter to 'operator new' must be 'unsigned int' + +## Remarks The first formal parameter of the [operator new](../../standard-library/new-operators.md#op_new) must be an unsigned **`int`**. ## Example -The following sample generates C2821: +The following example generates C2821: ```cpp // C2821.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2823.md b/docs/error-messages/compiler-errors-2/compiler-error-c2823.md index acdfe09f03..461936a536 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2823.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2823.md @@ -1,20 +1,21 @@ --- -description: "Learn more about: Compiler Error C2823" title: "Compiler Error C2823" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2823" +ms.date: 11/04/2016 f1_keywords: ["C2823"] helpviewer_keywords: ["C2823"] -ms.assetid: 982b1b35-1a7c-456e-b711-f80cfe2d571e --- # Compiler Error C2823 > a typedef template is illegal +## Remarks + Templates are not allowed in **`typedef`** definitions. ## Example -The following sample generates C2823, and shows one way to fix it: +The following example generates C2823, and shows one way to fix it: ```cpp // C2823.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2824.md b/docs/error-messages/compiler-errors-2/compiler-error-c2824.md index 2178beb0a7..f314fdc5d0 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2824.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2824.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2824" title: "Compiler Error C2824" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2824" +ms.date: 11/04/2016 f1_keywords: ["C2824"] helpviewer_keywords: ["C2824"] -ms.assetid: 5bd865f7-e0af-404e-80fe-e2b798b44a59 --- # Compiler Error C2824 -return type for 'operator new' must be 'void *' +> return type for 'operator new' must be 'void *' + +## Remarks With non-based pointers, overloads of operator `new` must return `void *`. -The following sample generates C2824: +## Example + +The following example generates C2824: ```cpp // C2824.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2825.md b/docs/error-messages/compiler-errors-2/compiler-error-c2825.md index fc7b5f733e..451592c6a9 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2825.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2825.md @@ -1,14 +1,15 @@ --- -description: "Learn more about: Compiler Error C2825" title: "Compiler Error C2825" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2825" +ms.date: 11/04/2016 f1_keywords: ["C2825"] helpviewer_keywords: ["C2825"] -ms.assetid: c832f1c1-5184-4fc2-9356-12b21daa7af3 --- # Compiler Error C2825 -var : must be a class or namespace when followed by '::' +> var : must be a class or namespace when followed by '::' + +## Remarks An unsuccessful attempt was made to form a qualified name. @@ -16,7 +17,7 @@ For example, make sure that your code does not contain a function declaration wh ## Example -The following sample generates C2825: +The following example generates C2825: ```cpp // C2825.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2827.md b/docs/error-messages/compiler-errors-2/compiler-error-c2827.md index fe90f7e62b..77edf9d617 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2827.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2827.md @@ -1,14 +1,15 @@ --- -description: "Learn more about: Compiler Error C2827" title: "Compiler Error C2827" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2827" +ms.date: 11/04/2016 f1_keywords: ["C2827"] helpviewer_keywords: ["C2827"] -ms.assetid: cb3e5814-0c92-40e4-b620-98578ae3003a --- # Compiler Error C2827 -'operator operator' cannot be globally overridden with unary form +> 'operator operator' cannot be globally overridden with unary form + +## Remarks The operator cannot have a unary form outside of an object. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2828.md b/docs/error-messages/compiler-errors-2/compiler-error-c2828.md index 0273a71713..3a2f05f16f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2828.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2828.md @@ -1,14 +1,15 @@ --- -description: "Learn more about: Compiler Error C2828" title: "Compiler Error C2828" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2828" +ms.date: 11/04/2016 f1_keywords: ["C2828"] helpviewer_keywords: ["C2828"] -ms.assetid: d8df6ed4-5954-46c2-b59b-52881d4e923d --- # Compiler Error C2828 -'operator operator' cannot be globally overridden with binary form +> 'operator operator' cannot be globally overridden with binary form + +## Remarks The operator cannot have a binary form outside of an object. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2829.md b/docs/error-messages/compiler-errors-2/compiler-error-c2829.md index 137d653a22..785f6ffbe6 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2829.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2829.md @@ -1,14 +1,15 @@ --- -description: "Learn more about: Compiler Error C2829" title: "Compiler Error C2829" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2829" +ms.date: 11/04/2016 f1_keywords: ["C2829"] helpviewer_keywords: ["C2829"] -ms.assetid: b3bfecb8-c8c1-45fd-bb85-4b42a6b8ed2b --- # Compiler Error C2829 -'operator operator' cannot have a variable parameter list +> 'operator operator' cannot have a variable parameter list + +## Remarks Only two operators can take variable parameter lists: diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2830.md b/docs/error-messages/compiler-errors-2/compiler-error-c2830.md index 6141a2a502..44f5c71e35 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2830.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2830.md @@ -1,13 +1,14 @@ --- -description: "Learn more about: Compiler Error C2830" title: "Compiler Error C2830" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2830" +ms.date: 11/04/2016 f1_keywords: ["C2830"] helpviewer_keywords: ["C2830"] -ms.assetid: 91607d2d-6aab-4c1b-b253-a7b8ec37760e --- # Compiler Error C2830 -only placement parameters to 'operator new' can have default values +> only placement parameters to 'operator new' can have default values + +## Remarks The standard formal parameters for [operator new](../../standard-library/new-operators.md#op_new) cannot have default values. Only user-defined placement parameters can specify defaults. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2831.md b/docs/error-messages/compiler-errors-2/compiler-error-c2831.md index 9512ca8f41..bc27fed8ec 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2831.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2831.md @@ -1,14 +1,15 @@ --- -description: "Learn more about: Compiler Error C2831" title: "Compiler Error C2831" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2831" +ms.date: 11/04/2016 f1_keywords: ["C2831"] helpviewer_keywords: ["C2831"] -ms.assetid: c8c04288-0889-4265-a077-17f94cbcdcc9 --- # Compiler Error C2831 -'operator operator' cannot have default parameters +> 'operator operator' cannot have default parameters + +## Remarks Only three operators can have default parameters: @@ -18,7 +19,9 @@ Only three operators can have default parameters: - Left parenthesis ( -The following sample generates C2831: +## Example + +The following example generates C2831: ```cpp // C2831.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2833.md b/docs/error-messages/compiler-errors-2/compiler-error-c2833.md index 84e1e48a15..db4f336ded 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2833.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2833.md @@ -1,20 +1,23 @@ --- -description: "Learn more about: Compiler Error C2833" title: "Compiler Error C2833" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2833" +ms.date: 11/04/2016 f1_keywords: ["C2833"] helpviewer_keywords: ["C2833"] -ms.assetid: b9418ce1-e2ee-4599-8959-6fde89c27569 --- # Compiler Error C2833 > 'operator *operator-name*' is not a recognized operator or type +## Remarks + The word **`operator`** must be followed by an *operator-name* that you want to override or a type you want to convert. For a list of the operators that you can define in a managed type, see [User-defined Operators](../../dotnet/user-defined-operators-cpp-cli.md). -The following sample generates C2833: +## Example + +The following example generates C2833: ```cpp // C2833.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2834.md b/docs/error-messages/compiler-errors-2/compiler-error-c2834.md index 716e1c7e5a..32d04c4ef4 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2834.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2834.md @@ -1,15 +1,16 @@ --- -description: "Learn more about: Compiler Error C2834" title: "Compiler Error C2834" +description: "Learn more about: Compiler Error C2834" ms.date: 06/01/2022 f1_keywords: ["C2834"] helpviewer_keywords: ["C2834"] -ms.assetid: 28f9f6eb-ab2a-4e64-aaaa-9d14f955de41 --- # Compiler Error C2834 > 'operator *operator-name*' must be globally qualified +## Remarks + The `new` and `delete` operators are tied to the class where they reside. Scope resolution cannot be used to select a version of `new` or `delete` from a different class. To implement multiple forms of the `new` or `delete` operator, create a version of the operator with extra formal parameters. This error is obsolete in Visual Studio 2022 and later versions. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2835.md b/docs/error-messages/compiler-errors-2/compiler-error-c2835.md index ae076c90af..5492c49de6 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2835.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2835.md @@ -7,11 +7,15 @@ helpviewer_keywords: ["C2835"] --- # Compiler Error C2835 -user-defined conversion 'type' takes no formal parameters +> user-defined conversion 'type' takes no formal parameters + +## Remarks User-defined type conversions cannot take formal parameters. -The following sample generates C2835: +## Example + +The following example generates C2835: ```cpp // C2835.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2838.md b/docs/error-messages/compiler-errors-2/compiler-error-c2838.md index 5667a08751..d25d68cdfc 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2838.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2838.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2838" title: "Compiler Error C2838" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2838" +ms.date: 11/04/2016 f1_keywords: ["C2838"] helpviewer_keywords: ["C2838"] -ms.assetid: 176b2ad6-7a84-4019-b97e-328866054457 --- # Compiler Error C2838 -'member' : illegal qualified name in member declaration +> 'member' : illegal qualified name in member declaration + +## Remarks A class, structure, or union uses a fully qualified name to redeclare a member of another class, structure, or union. -The following sample generates C2838: +## Example + +The following example generates C2838: ```cpp // C2838.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2839.md b/docs/error-messages/compiler-errors-2/compiler-error-c2839.md index f7480b7bc4..94fe1998ec 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2839.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2839.md @@ -1,13 +1,14 @@ --- -description: "Learn more about: Compiler Error C2839" title: "Compiler Error C2839" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2839" +ms.date: 11/04/2016 f1_keywords: ["C2839"] helpviewer_keywords: ["C2839"] -ms.assetid: e4914def-2ee1-4e2e-8951-d35f9515c2b2 --- # Compiler Error C2839 -invalid return type 'type' for overloaded 'operator ->' +> invalid return type 'type' for overloaded 'operator ->' + +## Remarks The `->` operator must return a class, struct, or union, or a reference to one. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2842.md b/docs/error-messages/compiler-errors-2/compiler-error-c2842.md index 62762894e9..b31737736a 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2842.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2842.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2842" title: "Compiler Error C2842" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2842" +ms.date: 11/04/2016 f1_keywords: ["C2842"] helpviewer_keywords: ["C2842"] -ms.assetid: 8674f08d-9f50-46ad-9229-abc6b74fa0e5 --- # Compiler Error C2842 @@ -18,7 +17,7 @@ For more information, see [User-Defined Operators (C++/CLI)](../../dotnet/user-d ## Example -The following sample generates C2842. +The following example generates C2842. ```cpp // C2842.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2843.md b/docs/error-messages/compiler-errors-2/compiler-error-c2843.md index 14b5171ffa..87266f66be 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2843.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2843.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2843" title: "Compiler Error C2843" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2843" +ms.date: 11/04/2016 f1_keywords: ["C2843"] helpviewer_keywords: ["C2843"] -ms.assetid: 9d3f2ac4-eea5-4fed-abeb-e752f442bfcc --- # Compiler Error C2843 -'member' : cannot take the address of a non-static data member or method of a managed or WinRT type +> 'member' : cannot take the address of a non-static data member or method of a managed or WinRT type + +## Remarks An instance is needed to take the address of nonstatic data members of a managed or WinRT class or interface. -The following sample generates C2843 and shows how to fix it: +## Example + +The following example generates C2843 and shows how to fix it: ```cpp // C2843_2.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2844.md b/docs/error-messages/compiler-errors-2/compiler-error-c2844.md index 5fd3a703db..4560e90ad5 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2844.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2844.md @@ -1,20 +1,23 @@ --- -description: "Learn more about: Compiler Error C2844" title: "Compiler Error C2844" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2844" +ms.date: 11/04/2016 f1_keywords: ["C2844"] helpviewer_keywords: ["C2844"] -ms.assetid: dcaf4cd2-21b0-4280-ae42-0a706c524d83 --- # Compiler Error C2844 -'member' : cannot be a member of interface 'interface' +> 'member' : cannot be a member of interface 'interface' + +## Remarks An [interface class](../../extensions/interface-class-cpp-component-extensions.md) cannot contain a data member unless it is also a property. Anything other than a property or member function is not allowed in an interface. Furthermore, constructors, destructors, and operators are not allowed. -The following sample generates C2844: +## Example + +The following example generates C2844: ```cpp // C2844a.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2845.md b/docs/error-messages/compiler-errors-2/compiler-error-c2845.md index 1651196389..772b3afbfc 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2845.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2845.md @@ -1,13 +1,14 @@ --- -description: "Learn more about: Compiler Error C2845" title: "Compiler Error C2845" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2845" +ms.date: 11/04/2016 f1_keywords: ["C2845"] helpviewer_keywords: ["C2845"] -ms.assetid: 31b28ee9-978f-403b-94d8-dbaacd24cce0 --- # Compiler Error C2845 -'operator' : pointer arithmetic not allowed on this type +> 'operator' : pointer arithmetic not allowed on this type + +## Remarks You cannot increment the pointer to a managed class. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2846.md b/docs/error-messages/compiler-errors-2/compiler-error-c2846.md index a33ecf9a56..a7e56fc19f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2846.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2846.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2846" title: "Compiler Error C2846" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2846" +ms.date: 11/04/2016 f1_keywords: ["C2846"] helpviewer_keywords: ["C2846"] -ms.assetid: bc090ec2-5410-4112-9ec6-261325374375 --- # Compiler Error C2846 -'constructor' : an interface cannot have a constructor +> 'constructor' : an interface cannot have a constructor + +## Remarks A Visual C++ [interface](../../cpp/interface.md) cannot have a constructor. -The following sample generates C2846: +## Example + +The following example generates C2846: ```cpp // C2846.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2847.md b/docs/error-messages/compiler-errors-2/compiler-error-c2847.md index ef48d9496b..93cc7ebfb7 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2847.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2847.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2847" title: "Compiler Error C2847" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2847" +ms.date: 11/04/2016 f1_keywords: ["C2847"] helpviewer_keywords: ["C2847"] -ms.assetid: 9ad9a0e0-8b16-49d9-a5be-f8eda2372aa9 --- # Compiler Error C2847 -cannot apply sizeof to managed or WinRT type 'class' +> cannot apply sizeof to managed or WinRT type 'class' + +## Remarks The [sizeof](../../cpp/sizeof-operator.md) operator gets the value of an object at compile time. The size of a managed or WinRT class, interface, or value type is dynamic and so cannot be known at compile time. -For example, the following sample generates C2847: +## Example + +For example, the following example generates C2847: ```cpp // C2847.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2849.md b/docs/error-messages/compiler-errors-2/compiler-error-c2849.md index 529a669948..4b2afd8008 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2849.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2849.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2849" title: "Compiler Error C2849" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2849" +ms.date: 11/04/2016 f1_keywords: ["C2849"] helpviewer_keywords: ["C2849"] -ms.assetid: e28f6b3e-e0e7-4f92-b006-ebaa81d368e6 --- # Compiler Error C2849 -'destructor' : an interface cannot have a destructor +> 'destructor' : an interface cannot have a destructor + +## Remarks A Visual C++ [interface](../../cpp/interface.md) cannot have a destructor. -The following sample generates C2849: +## Example + +The following example generates C2849: ```cpp // C2849.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2850.md b/docs/error-messages/compiler-errors-2/compiler-error-c2850.md index 86e1d28646..a5720a6a0b 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2850.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2850.md @@ -1,18 +1,21 @@ --- -description: "Learn more about: Compiler Error C2850" title: "Compiler Error C2850" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2850" +ms.date: 11/04/2016 f1_keywords: ["C2850"] helpviewer_keywords: ["C2850"] -ms.assetid: f3efe86c-4168-4e76-a133-3f8314c69f51 --- # Compiler Error C2850 -'construct' : only allowed at file scope; may not be in a nested construct +> 'construct' : only allowed at file scope; may not be in a nested construct + +## Remarks Constructs, such as some pragmas, can only appear at global scope. -The following sample generates C2850: +## Example + +The following example generates C2850: ```cpp // C2850.cpp