Skip to content

Structure error references in range [C2101, C2120] #5538

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
12 changes: 8 additions & 4 deletions docs/error-messages/compiler-errors-1/compiler-error-c2101.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
---
description: "Learn more about: Compiler Error C2101"
title: "Compiler Error C2101"
ms.date: "03/04/2024"
description: "Learn more about: Compiler Error C2101"
ms.date: 03/04/2024
f1_keywords: ["C2101"]
helpviewer_keywords: ["C2101"]
---
# Compiler Error C2101

'&' on constant
> '&' on constant

## Remarks

The [address-of operator (**`&`**)](../../cpp/address-of-operator-amp.md) must have an l-value as operand.

The following sample generates C2101:
## Example

The following example generates C2101:

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

'&' requires l-value
> '&' requires l-value

## Remarks

The [address-of operator (**`&`**)](../../cpp/address-of-operator-amp.md) must have an l-value as operand. Address of temporary values cannot be taken.

The following sample generates C2102:
## Example

The following example generates C2102:

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

'&' on register variable
> '&' on register variable
## Remarks

You cannot take the address of a register.

The following sample generates C2103:
## Example

The following example generates C2103:

```c
// C2103.c
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-1/compiler-error-c2104.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2104"
title: "Compiler Error C2104"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2104"
ms.date: 11/04/2016
f1_keywords: ["C2104"]
helpviewer_keywords: ["C2104"]
ms.assetid: 2ea78896-72a6-4901-a1fa-f33ea88ad61b
---
# Compiler Error C2104

'&' on bit field ignored
> '&' on bit field ignored

## Remarks

You cannot take the address of a bit field.

The following sample generates C2104:
## Example

The following example generates C2104:

```cpp
// C2104.cpp
Expand Down
15 changes: 9 additions & 6 deletions docs/error-messages/compiler-errors-1/compiler-error-c2105.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2105"
title: "Compiler Error C2105"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2105"
ms.date: 11/04/2016
f1_keywords: ["C2105"]
helpviewer_keywords: ["C2105"]
ms.assetid: 19b7f7bc-a9da-4d23-8193-005b6d09274f
---
# Compiler Error C2105

'operator' needs l-value
> 'operator' needs l-value

## Remarks

The operator must have an l-value as operand.

The following sample generates C2105:
## Examples

The following example generates C2105:

```cpp
// C2105.cpp
Expand All @@ -29,7 +32,7 @@ int main() {
}
```

The following sample generates C2105:
The following example generates C2105:

```cpp
// C2105b.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-1/compiler-error-c2106.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2106"
title: "Compiler Error C2106"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2106"
ms.date: 11/04/2016
f1_keywords: ["C2106"]
helpviewer_keywords: ["C2106"]
ms.assetid: d5c91a2e-04e4-4770-8478-788b98c52a53
---
# Compiler Error C2106

'operator' : left operand must be l-value
> 'operator' : left operand must be l-value

## Remarks

The operator must have an l-value as its left operand.

The following sample generates C2106:
## Example

The following example generates C2106:

```cpp
// C2106.cpp
Expand Down
11 changes: 6 additions & 5 deletions docs/error-messages/compiler-errors-1/compiler-error-c2107.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
---
description: "Learn more about: Compiler Error C2107"
title: "Compiler Error C2107"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2107"
ms.date: 11/04/2016
f1_keywords: ["C2107"]
helpviewer_keywords: ["C2107"]
ms.assetid: 2866a121-884e-4bb5-8613-36de5817000e
---
# Compiler Error C2107

illegal index, indirection not allowed
> illegal index, indirection not allowed

## Remarks

A subscript is applied to an expression that does not evaluate to a pointer.

## Example

C2107 can occur if you incorrectly use the **`this`** pointer of a value type to access the type's default indexer. For more information, see [Semantics of the `this` pointer](../../dotnet/how-to-define-and-consume-classes-and-structs-cpp-cli.md#BKMK_Semantics_of_the_this_pointer).

The following sample generates C2107.
The following example generates C2107.

```cpp
// C2107.cpp
Expand Down
5 changes: 2 additions & 3 deletions docs/error-messages/compiler-errors-1/compiler-error-c2108.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
description: "Learn more about: Compiler Error C2108"
title: "Compiler Error C2108"
description: "Learn more about: Compiler Error C2108"
ms.date: 06/03/2022
f1_keywords: ["C2108"]
helpviewer_keywords: ["C2108"]
ms.assetid: c84f0b47-5e2c-47d2-8edb-427a40e17c36
---
# Compiler Error C2108

Expand All @@ -18,7 +17,7 @@ The array subscript is a non-integer expression.

C2108 can occur if you incorrectly use the **`this`** pointer of a value type to access the type's default indexer. For more information, see [Semantics of the `this` pointer](../../dotnet/how-to-define-and-consume-classes-and-structs-cpp-cli.md#BKMK_Semantics_of_the_this_pointer).

The following sample generates C2108.
The following example generates C2108.

```cpp
// C2108.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-1/compiler-error-c2109.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C2109"
title: "Compiler Error C2109"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2109"
ms.date: 11/04/2016
f1_keywords: ["C2109"]
helpviewer_keywords: ["C2109"]
ms.assetid: 2d1ac79d-a985-4904-a38b-b270578d664d
---
# Compiler Error C2109

subscript requires array or pointer type
> subscript requires array or pointer type

## Remarks

The subscript was used on a variable that was not an array.

The following sample generates C2109:
## Example

The following example generates C2109:

```cpp
// C2109.cpp
Expand Down
8 changes: 6 additions & 2 deletions docs/error-messages/compiler-errors-1/compiler-error-c2110.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ helpviewer_keywords: ["C2110"]
---
# Compiler Error C2110

'+' : cannot add two pointers
> '+' : cannot add two pointers
## Remarks

An attempt was made to add two pointer values using the plus (`+`) operator.

The following sample generates C2110:
## Example

The following example generates C2110:

```cpp
// C2110.cpp
Expand Down
8 changes: 6 additions & 2 deletions docs/error-messages/compiler-errors-1/compiler-error-c2111.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ helpviewer_keywords: ["C2111"]
---
# Compiler Error C2111

'+' : pointer addition requires integral operand
> '+' : pointer addition requires integral operand

## Remarks

An attempt was made to add a nonintegral value to a pointer using the plus (`+`) operator.

The following sample generates C2111:
## Example

The following example generates C2111:

```cpp
// C2111.cpp
Expand Down
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-1/compiler-error-c2112.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
description: "Learn more about: Compiler Error C2112"
title: "Compiler Error C2112"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2112"
ms.date: 11/04/2016
f1_keywords: ["C2112"]
helpviewer_keywords: ["C2112"]
ms.assetid: 527a2fea-f585-4d00-bbb4-477aee17144b
---
# Compiler Error C2112

'-' : pointer subtraction requires integral or pointer operand
> '-' : pointer subtraction requires integral or pointer operand

## Remarks

An attempt was made to subtract pointers that point to different types.
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-1/compiler-error-c2113.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
description: "Learn more about: Compiler Error C2113"
title: "Compiler Error C2113"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2113"
ms.date: 11/04/2016
f1_keywords: ["C2113"]
helpviewer_keywords: ["C2113"]
ms.assetid: be85cb5e-b0ed-4fc9-b062-032bf7f59a4e
---
# Compiler Error C2113

'-' : pointer can only be subtracted from another pointer
> '-' : pointer can only be subtracted from another pointer

## Remarks

The right operand in a subtraction operation was a pointer, but the left operand was not.
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-1/compiler-error-c2114.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
description: "Learn more about: Compiler Error C2114"
title: "Compiler Error C2114"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2114"
ms.date: 11/04/2016
f1_keywords: ["C2114"]
helpviewer_keywords: ["C2114"]
ms.assetid: c1b2445f-74eb-4dc8-8d5a-6c8627775ee8
---
# Compiler Error C2114

'operator' : pointer on left; needs integral value on right
> 'operator' : pointer on left; needs integral value on right

## Remarks

The left operand of `operator` was a pointer, so the right operand must be an integer value.
9 changes: 5 additions & 4 deletions docs/error-messages/compiler-errors-1/compiler-error-c2115.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
description: "Learn more about: Compiler Error C2115"
title: "Compiler Error C2115"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C2115"
ms.date: 11/04/2016
f1_keywords: ["C2115"]
helpviewer_keywords: ["C2115"]
ms.assetid: 95d76ab5-ddd7-4e29-8cac-24285dccc490
---
# Compiler Error C2115

'identifier' : incompatible types
> 'identifier' : incompatible types
## Remarks

An expression contained incompatible types.
7 changes: 3 additions & 4 deletions docs/error-messages/compiler-errors-1/compiler-error-c2116.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
---
description: "Learn more about: Compiler Error C2116"
title: "Compiler Error C2116"
description: "Learn more about: Compiler Error C2116"
ms.date: 12/02/2021
f1_keywords: ["C2116"]
helpviewer_keywords: ["C2116"]
ms.assetid: 0089a23f-e6bd-4956-9b58-3bcca09ab5ad
---
# Compiler Error C2116

> function parameter lists do not match between declarations

The parameter list of a redeclared function doesn't match the parameter list used in an earlier declaration.

## Remarks

The parameter list of a redeclared function doesn't match the parameter list used in an earlier declaration.

This error can occur if you use different types for the parameters when you redeclare an `extern "C"` function.

This error may occur after an upgrade because of conformance changes in Visual Studio 2019. Starting in Visual Studio 2019 version 16.3, the [`/Zc:externC-`](../../build/reference/zc-externc.md) compiler option relaxes this check. The option must come after any [`/permissive-`](../../build/reference/permissive-standards-conformance.md) option on the command line.
Expand Down
Loading