Skip to content

Structure error references in range [C2521, C2550] #5601

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-c2521.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
---
description: "Learn more about: Compiler Error C2521"
title: "Compiler Error C2521"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2521"
ms.date: 11/04/2016
f1_keywords: ["C2521"]
helpviewer_keywords: ["C2521"]
ms.assetid: 6042821b-e345-4a54-a7e9-a2c9019ea016
---
# Compiler Error C2521

function does not take any arguments
> function does not take any arguments

## Remarks

You attempted to use arguments with a destructor or finalizer.

For more information, see [Destructors and finalizers](../../dotnet/how-to-define-and-consume-classes-and-structs-cpp-cli.md#BKMK_Destructors_and_finalizers).

## Example

The following sample generates C2521.
The following example generates C2521.

```cpp
// C2521.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2523.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2523"
title: "Compiler Error C2523"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2523"
ms.date: 11/04/2016
f1_keywords: ["C2523"]
helpviewer_keywords: ["C2523"]
ms.assetid: 7951b700-8f37-45a0-beb4-a79ae0ced72e
---
# Compiler Error C2523

'class::~identifier' : destructor/finalizer tag mismatch
> 'class::~identifier' : destructor/finalizer tag mismatch

## Remarks

The name of the destructor must be the class name preceded by a tilde (`~`). The constructor and destructor are the only members that have the same name as the class.

The following sample generates C2523:
## Example

The following example generates C2523:

```cpp
// C2523.cpp
Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2524.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
description: "Learn more about: Compiler Error C2524"
title: "Compiler Error C2524"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2524"
ms.date: 11/04/2016
f1_keywords: ["C2524"]
helpviewer_keywords: ["C2524"]
ms.assetid: e71d17f5-2fc2-416b-8dbd-e9bed85eb33a
---
# Compiler Error C2524

'destructor' : a destructor/finalizer must have a 'void' parameter list
> 'destructor' : a destructor/finalizer must have a 'void' parameter list

## Remarks

The destructor or finalizer had a parameter list that is not [void](../../cpp/void-cpp.md). Other parameter types are not allowed.

Expand Down
12 changes: 8 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2526.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
---
description: "Learn more about: Compiler Error C2526"
title: "Compiler Error C2526"
ms.date: "03/08/2024"
description: "Learn more about: Compiler Error C2526"
ms.date: 03/08/2024
f1_keywords: ["C2526"]
helpviewer_keywords: ["C2526"]
---
# Compiler Error C2526

'identifier1' : C linkage function cannot return C++ class 'identifier2'
> 'identifier1' : C linkage function cannot return C++ class 'identifier2'

## Remarks

A function defined with C linkage cannot return a user-defined type.

The following sample generates C2526:
## Example

The following example generates C2526:

```cpp
// C2526.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2528.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2528"
title: "Compiler Error C2528"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2528"
ms.date: 11/04/2016
f1_keywords: ["C2528"]
helpviewer_keywords: ["C2528"]
ms.assetid: 2ea9d583-67a8-4b16-b35f-a50eeffc03c4
---
# Compiler Error C2528

'name' : pointer to reference is illegal
> 'name' : pointer to reference is illegal

## Remarks

You cannot declare a pointer to a reference. Dereference the variable before declaring a pointer to it.

The following sample generates C2528:
## Example

The following example generates C2528:

```cpp
// C2528.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2529.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2529"
title: "Compiler Error C2529"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2529"
ms.date: 11/04/2016
f1_keywords: ["C2529"]
helpviewer_keywords: ["C2529"]
ms.assetid: 73a99e55-b91e-488d-9b72-cc80faaeb436
---
# Compiler Error C2529

'name' : reference to reference is illegal
> 'name' : reference to reference is illegal

## Remarks

This error may be fixed by using pointer syntax and declaring a reference to a pointer.

The following sample generates C2529:
## Example

The following example generates C2529:

```cpp
// C2529.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2530.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
description: "Learn more about: Compiler Error C2530"
title: "Compiler Error C2530"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2530"
ms.date: 11/04/2016
f1_keywords: ["C2530"]
helpviewer_keywords: ["C2530"]
ms.assetid: b790a312-48df-4a6a-9e27-be2c5f32f16c
---
# Compiler Error C2530

'identifier' : references must be initialized
> 'identifier' : references must be initialized

## Remarks

You must initialize a reference when it was declared, unless it is declared already:

Expand All @@ -20,7 +21,9 @@ You must initialize a reference when it was declared, unless it is declared alre

- As the return type of a function.

The following sample generates C2530:
## Example

The following example generates C2530:

```cpp
// C2530.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2531.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2531"
title: "Compiler Error C2531"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2531"
ms.date: 11/04/2016
f1_keywords: ["C2531"]
helpviewer_keywords: ["C2531"]
ms.assetid: c49afe15-55f8-4dc8-ac01-bf653622a7db
---
# Compiler Error C2531

'identifier' : reference to a bit field illegal
> 'identifier' : reference to a bit field illegal

## Remarks

References to bit fields are not allowed.

The following sample generates C2531:
## Example

The following example generates C2531:

```cpp
// C2531.cpp
Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2532.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
description: "Learn more about: Compiler Error C2532"
title: "Compiler Error C2532"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2532"
ms.date: 11/04/2016
f1_keywords: ["C2532"]
helpviewer_keywords: ["C2532"]
ms.assetid: a94fdf13-5063-4206-b5a5-374930287bee
---
# Compiler Error C2532

'identifier' : illegal modifier for reference
> 'identifier' : illegal modifier for reference

## Remarks

The reference was changed. References cannot be modified to refer to another object. Use a pointer instead.
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2533.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
---
description: "Learn more about: Compiler Error C2533"
title: "Compiler Error C2533"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2533"
ms.date: 11/04/2016
f1_keywords: ["C2533"]
helpviewer_keywords: ["C2533"]
ms.assetid: 5b335652-076c-4824-87c8-a741f64a3ce0
---
# Compiler Error C2533

'identifier' : constructors not allowed a return type
> 'identifier' : constructors not allowed a return type

## Remarks

A constructor cannot have a return type (not even a **`void`** return type).

A common source of this error is a missing semicolon between the end of a class definition and the first constructor implementation. The compiler sees the class as a definition of the return type for the constructor function, and generates C2533.

The following sample generates C2533, and shows how to fix it:
## Example

The following example generates C2533, and shows how to fix it:

```cpp
// C2533.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2534.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2534"
title: "Compiler Error C2534"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2534"
ms.date: 11/04/2016
f1_keywords: ["C2534"]
helpviewer_keywords: ["C2534"]
ms.assetid: 481f9f54-5b51-4aa0-8eea-218f10807705
---
# Compiler Error C2534

'identifier' : constructor cannot return a value
> 'identifier' : constructor cannot return a value

## Remarks

A constructor cannot contain a **`return`** statement with an expression (even if the expression has type **`void`**). This differs from regular void-returning function where a return expression of type **`void`** is allowed. However, using the **`return`** statement without an expression is allowed for early returns in the constructor.

The following sample generates C2534:
## Example

The following example generates C2534:

```cpp
// C2534.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2535.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
---
description: "Learn more about: Compiler Error C2535"
title: "Compiler Error C2535"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2535"
ms.date: 11/04/2016
f1_keywords: ["C2535"]
helpviewer_keywords: ["C2535"]
ms.assetid: a958f83e-e2bf-4a59-b44b-d406ec325d7e
---
# Compiler Error C2535

'identifier' : member function already defined or declared
> 'identifier' : member function already defined or declared

## Remarks

This error could be caused by using the same formal parameter list in more than one definition or declaration of an overloaded function.

If you get C2535 because of the Dispose function, see [Destructors and finalizers](../../dotnet/how-to-define-and-consume-classes-and-structs-cpp-cli.md#BKMK_Destructors_and_finalizers) for more information.

The following sample generates C2535:
## Example

The following example generates C2535:

```cpp
// C2535.cpp
Expand Down
12 changes: 8 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c2537.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
---
description: "Learn more about: Compiler Error C2537"
title: "Compiler Error C2537"
ms.date: "03/08/2024"
description: "Learn more about: Compiler Error C2537"
ms.date: 03/08/2024
f1_keywords: ["C2537"]
helpviewer_keywords: ["C2537"]
---
# Compiler Error C2537

'specifier' : illegal linkage specification
> 'specifier' : illegal linkage specification

## Remarks

The linkage specifier is not supported. Only the "C" and "C++" linkage specifiers are supported.

The following sample generates C2537:
## Example

The following example generates C2537:

```cpp
// C2537.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2540.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2540"
title: "Compiler Error C2540"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2540"
ms.date: 11/04/2016
f1_keywords: ["C2540"]
helpviewer_keywords: ["C2540"]
ms.assetid: 92c805a3-2dd9-46ca-a63d-3845c18ecc95
---
# Compiler Error C2540

non-constant expression as array bound
> non-constant expression as array bound

## Remarks

An array must have a constant bound.

The following sample generates C2540:
## Example

The following example generates C2540:

```cpp
// C2540.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c2541.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2541"
title: "Compiler Error C2541"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2541"
ms.date: 11/04/2016
f1_keywords: ["C2541"]
helpviewer_keywords: ["C2541"]
ms.assetid: ed95180f-00df-4e62-a8e9-1b6dab8281bf
---
# Compiler Error C2541

'delete' : delete : cannot delete objects that are not pointers
> 'delete' : delete : cannot delete objects that are not pointers

## Remarks

The [delete](../../cpp/delete-operator-cpp.md) operator was used on an object that is not a pointer.

The following sample generates C2541:
## Example

The following example generates C2541:

```cpp
// C2541.cpp
Expand Down
Loading