Skip to content

Structure error references in range [C3191, C3220] #5668

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 5 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
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3192.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3192"
title: "Compiler Error C3192"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3192"
ms.date: 11/04/2016
f1_keywords: ["C3192"]
helpviewer_keywords: ["C3192"]
ms.assetid: 8b0083d4-706f-46f6-858a-e1d9af464cf8
---
# Compiler Error C3192

syntax error : '^' is not a prefix operator (did you mean '*'?)
> syntax error : '^' is not a prefix operator (did you mean '*'?)

## Remarks

A handle cannot be used as a dereference operator.

The following sample generates C3192:
## Example

The following example generates C3192:

```cpp
// C3192.cpp
Expand Down
11 changes: 6 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3194.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
---
description: "Learn more about: Compiler Error C3194"
title: "Compiler Error C3194"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3194"
ms.date: 11/04/2016
f1_keywords: ["C3194"]
helpviewer_keywords: ["C3194"]
ms.assetid: 49d3ffc6-eff6-4b46-865b-18811692a8bb
---
# Compiler Error C3194

'member' : a value-type cannot have an assignment operator
> 'member' : a value-type cannot have an assignment operator

## Remarks

Special member functions that require automatic invocation by the compiler, such as a copy constructor or copy assignment operator are not supported within a value class.

## Example

The following sample generates C3194.
The following example generates C3194.

```cpp
// C3194.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3195.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3195"
title: "Compiler Error C3195"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3195"
ms.date: 11/04/2016
f1_keywords: ["C3195"]
helpviewer_keywords: ["C3195"]
ms.assetid: 97e4f681-812b-49e8-ba57-24b7817e3cd8
---
# Compiler Error C3195

'operator' : is reserved and cannot be used as a member of a ref class or value type. CLR or WinRT operators must be defined using the 'operator' keyword
> 'operator' : is reserved and cannot be used as a member of a ref class or value type. CLR or WinRT operators must be defined using the 'operator' keyword
## Remarks

The compiler detected an operator definition using the Managed Extensions for C++ syntax. You must use the C++ syntax for operators.

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

The following example generates C3195 and shows how to fix it:

```cpp
// C3195.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3196.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3196"
title: "Compiler Error C3196"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3196"
ms.date: 11/04/2016
f1_keywords: ["C3196"]
helpviewer_keywords: ["C3196"]
ms.assetid: d9c38a13-191d-472d-aa2b-f61a6459d16c
---
# Compiler Error C3196

'keyword' : used more than once
> 'keyword' : used more than once

## Remarks

A keyword was used more than once.

The following sample generates C3196:
## Example

The following example generates C3196:

```cpp
// C3196.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3197.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3197"
title: "Compiler Error C3197"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3197"
ms.date: 11/04/2016
f1_keywords: ["C3197"]
helpviewer_keywords: ["C3197"]
ms.assetid: 4e385c3b-222e-425c-9612-46e83ed41650
---
# Compiler Error C3197

'keyword' : can only be used in definitions
> 'keyword' : can only be used in definitions

## Remarks

A keyword was used in a declaration but is only valid in a definition.

The following sample generates C3197:
## Example

The following example generates C3197:

```cpp
// C3197.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3198.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3198"
title: "Compiler Error C3198"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3198"
ms.date: 11/04/2016
f1_keywords: ["C3198"]
helpviewer_keywords: ["C3198"]
ms.assetid: ec4ecf61-0067-4aa4-b443-a91013a1e59d
---
# Compiler Error C3198

invalid use of floating-point pragmas: fenv_access pragma operates only in precise mode
> invalid use of floating-point pragmas: fenv_access pragma operates only in precise mode

## Remarks

[fenv_access](../../preprocessor/fenv-access.md) pragma was used under an [/fp](../../build/reference/fp-specify-floating-point-behavior.md) setting other than **/fp:precise**.

The following sample generates C3198:
## Example

The following example generates C3198:

```cpp
// C3198.cpp
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3199.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3199"
title: "Compiler Error C3199"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3199"
ms.date: 11/04/2016
f1_keywords: ["C3199"]
helpviewer_keywords: ["C3199"]
ms.assetid: e7a478d3-115a-40a3-991b-c7454fd2e28e
---
# Compiler Error C3199

invalid use of floating-point pragmas: exceptions are not supported in non-precise mode
> invalid use of floating-point pragmas: exceptions are not supported in non-precise mode

## Remarks

The [float_control](../../preprocessor/float-control.md) pragma was used to specify floating-point exception model under an [/fp](../../build/reference/fp-specify-floating-point-behavior.md) setting other than **/fp:precise**.

The following sample generates C3199:
## Example

The following example generates C3199:

```cpp
// C3199.cpp
Expand Down
15 changes: 10 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3200.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
---
description: "Learn more about: Compiler Error C3200"
title: "Compiler Error C3200"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3200"
ms.date: 11/04/2016
f1_keywords: ["C3200"]
helpviewer_keywords: ["C3200"]
ms.assetid: 44bb5e77-f0ec-421c-a732-b9ee7c0a3529
---
# Compiler Error C3200

'template' : invalid template argument for template parameter 'parameter', expected a class template
> 'template' : invalid template argument for template parameter 'parameter', expected a class template

## Remarks

You passed an invalid argument to a class template. The class template expects template as a parameter.

## Example

You passed an invalid argument to a class template. The class template expects template as a parameter. In the following example, calling `Y<int, int> aY` will generate C3200. The first parameter needs to be a template, such as `Y<X, int> aY`.
In the following example, calling `Y<int, int> aY` will generate C3200. The first parameter needs to be a template, such as `Y<X, int> aY`.

```cpp
// C3200.cpp
Expand Down
13 changes: 9 additions & 4 deletions docs/error-messages/compiler-errors-2/compiler-error-c3201.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
---
description: "Learn more about: Compiler Error C3201"
title: "Compiler Error C3201"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3201"
ms.date: 11/04/2016
f1_keywords: ["C3201"]
helpviewer_keywords: ["C3201"]
ms.assetid: ec19cd64-1789-40a3-b2db-dff2852b9d98
---
# Compiler Error C3201

the template parameter list for class template 'template' does not match the template parameter list for template parameter 'template'
> the template parameter list for class template 'template' does not match the template parameter list for template parameter 'template'

## Remarks

You passed a class template in the argument to a class template that does not take a template parameter, or you passed a mismatched number of template arguments for the default template argument.

## Example

The following example generates C3201:

```cpp
// C3201.cpp
template<typename T1, typename T2>
Expand Down
13 changes: 8 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3202.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3202"
title: "Compiler Error C3202"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3202"
ms.date: 11/04/2016
f1_keywords: ["C3202"]
helpviewer_keywords: ["C3202"]
ms.assetid: 23528a0c-5493-4804-9789-cd3c38e49fb9
---
# Compiler Error C3202

'arg name' : invalid default argument for template parameter 'parameter', expected a class template
> 'arg name' : invalid default argument for template parameter 'parameter', expected a class template

## Remarks

You passed an invalid default argument for a template parameter.

The following sample generates C3202:
## Example

The following example generates C3202:

```cpp
// C3202.cpp
Expand Down
15 changes: 10 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3203.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
---
description: "Learn more about: Compiler Error C3203"
title: "Compiler Error C3203"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3203"
ms.date: 11/04/2016
f1_keywords: ["C3203"]
helpviewer_keywords: ["C3203"]
ms.assetid: 6356770e-22c1-434c-91fe-f60b0aa23b91
---
# Compiler Error C3203

'type' : unspecialized class template or generic can't be used as a template or generic argument for template or generic parameter 'param', expected a real type
> 'type' : unspecialized class template or generic can't be used as a template or generic argument for template or generic parameter 'param', expected a real type

## Remarks

You passed an invalid argument to a class template or generic. The class template or generic expects a type as a parameter.

This error can be generated as a result of compiler conformance work that was done for Visual Studio 2005: an unspecialized class template can't be used as a template argument in a base class list. To resolve C3203, explicitly add the template type parameter(s) to the template class name when using it as a template parameter in a base class list.

## Examples

The following example generates C3203:

```cpp
// C3203.cpp
template< typename T >
Expand All @@ -33,7 +38,7 @@ int main() {
}
```

The following sample generates C3203 and shows how to fix it:
The following example generates C3203 and shows how to fix it:

```cpp
// C3203_b.cpp
Expand Down
11 changes: 6 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3204.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
---
description: "Learn more about: Compiler Error C3204"
title: "Compiler Error C3204"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3204"
ms.date: 11/04/2016
f1_keywords: ["C3204"]
helpviewer_keywords: ["C3204"]
ms.assetid: 06e578da-0262-48c8-b2ae-be1cd6d28884
---
# Compiler Error C3204

'_alloca' cannot be called from within a catch block
> '_alloca' cannot be called from within a catch block

## Remarks

This error occurs when you use a call to [_alloca](../../c-runtime-library/reference/alloca.md) from within a catch block.

## Example

The following sample generates C3204:
The following example generates C3204:

```cpp
// C3204.cpp
Expand Down
11 changes: 6 additions & 5 deletions docs/error-messages/compiler-errors-2/compiler-error-c3205.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
---
description: "Learn more about: Compiler Error C3205"
title: "Compiler Error C3205"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3205"
ms.date: 11/04/2016
f1_keywords: ["C3205"]
helpviewer_keywords: ["C3205"]
ms.assetid: 802d306e-5ff3-4491-8a22-c5f1c072d005
---
# Compiler Error C3205

argument list for template parameter 'parameter' is missing
> argument list for template parameter 'parameter' is missing

## Remarks

A [template](../../cpp/templates-cpp.md) parameter is missing.

## Example

The following sample generates C3205:
The following example generates C3205:

```cpp
// C3205.cpp
Expand Down
15 changes: 9 additions & 6 deletions docs/error-messages/compiler-errors-2/compiler-error-c3206.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
description: "Learn more about: Compiler Error C3206"
title: "Compiler Error C3206"
ms.date: "11/04/2016"
description: "Learn more about: Compiler Error C3206"
ms.date: 11/04/2016
f1_keywords: ["C3206"]
helpviewer_keywords: ["C3206"]
ms.assetid: d62995b5-e349-4418-bbe8-8a5e776ca7b0
---
# Compiler Error C3206

'function' : invalid type argument for 'param', missing type argument list on class type 'typename'
> 'function' : invalid type argument for 'param', missing type argument list on class type 'typename'

## Remarks

A function template is defined as taking a template type argument. However, a template template argument was passed.

The following sample generates C3206:
## Examples

The following example generates C3206:

```cpp
// C3206.cpp
Expand Down Expand Up @@ -77,7 +80,7 @@ int main() {
}
```

A class template is not allowed as a template type argument. The following sample raises C3206:
A class template is not allowed as a template type argument. The following example raises C3206:

```cpp
// C3206e.cpp
Expand Down
Loading