Skip to content

Structure error references in range [C2821, C2850] #5641

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2821.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2823.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2824.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
11 changes: 6 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2825.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
---
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.

For example, make sure that your code does not contain a function declaration where the function name begins with ::.

## Example

The following sample generates C2825:
The following example generates C2825:

```cpp
// C2825.cpp
Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2827.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2828.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2829.md
Original file line number Diff line number Diff line change
@@ -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:

Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2830.md
Original file line number Diff line number Diff line change
@@ -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.
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2831.md
Original file line number Diff line number Diff line change
@@ -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:

Expand All @@ -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
Expand Down
11 changes: 7 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2833.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
5 changes: 3 additions & 2 deletions docs/error-messages/compiler-errors-2/compiler-error-c2834.md
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 6 additions & 2 deletions docs/error-messages/compiler-errors-2/compiler-error-c2835.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2838.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2839.md
Original file line number Diff line number Diff line change
@@ -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.
7 changes: 3 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2842.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2843.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading