From f19c6597a957c9e249bcca77d84b71b565a6588c Mon Sep 17 00:00:00 2001 From: Rageking8 <106309953+Rageking8@users.noreply.github.com> Date: Mon, 11 Aug 2025 23:32:23 +0800 Subject: [PATCH 1/5] Add blockquotes for error messages in range [C2941, C2980] --- docs/error-messages/compiler-errors-2/compiler-error-c2945.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2946.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2947.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2948.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2951.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2952.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2953.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2955.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2957.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2958.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2959.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2962.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2969.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2970.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2971.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2973.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2974.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2976.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2977.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2978.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2979.md | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2945.md b/docs/error-messages/compiler-errors-2/compiler-error-c2945.md index 2d13eb9f49..dd14477de6 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2945.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2945.md @@ -8,6 +8,6 @@ ms.assetid: be640257-7017-45d1-986a-9fe8caab52f3 --- # Compiler Error C2945 -explicit instantiation does not refer to a template-class specialization +> explicit instantiation does not refer to a template-class specialization You cannot explicitly instantiate something that is not templated. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md index 382b205402..11de0af1d2 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md @@ -8,7 +8,7 @@ ms.assetid: c86dfbfc-7702-4f09-8a53-d205710e99c2 --- # Compiler Error C2946 -explicit instantiation; 'class' is not a template-class specialization +> explicit instantiation; 'class' is not a template-class specialization You cannot explicitly instantiate a nontemplated class. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md index 77faf9893e..db8b7e50be 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md @@ -8,7 +8,7 @@ ms.assetid: 6c056f62-ec90-4883-8a67-aeeb6ec13546 --- # Compiler Error C2947 -expecting '>' to terminate construct, found 'syntax' +> expecting '>' to terminate construct, found 'syntax' A generic or template argument list may not have been terminated correctly. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2948.md b/docs/error-messages/compiler-errors-2/compiler-error-c2948.md index b3a878a050..7d7892973c 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2948.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2948.md @@ -8,6 +8,6 @@ ms.assetid: 780c6ed3-43a0-4112-8d00-b7bf79086c05 --- # Compiler Error C2948 -explicit instantiation; storage class specifier 'specifier' not permitted on specialization +> explicit instantiation; storage class specifier 'specifier' not permitted on specialization You cannot use storage-class specifiers (such as **`extern`**) in a specialization of a template class that was previously explicitly instantiated. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md index a38b41dfaf..a4bf3f395b 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md @@ -8,7 +8,7 @@ ms.assetid: c6f95aa2-c894-425b-a51c-d40d70c8daa1 --- # Compiler Error C2951 -type declarations are only permitted at global, namespace, or class scope +> type declarations are only permitted at global, namespace, or class scope You cannot declare a generic or template class outside global or namespace scope. If you make your generic or template declarations in an include file, make sure the include file is at global scope. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md index 9998595a1c..40576ad31e 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md @@ -8,7 +8,7 @@ ms.assetid: a40e18a2-d02c-4511-854f-6c6fd6789a1a --- # Compiler Error C2952 -'declaration' : type declaration missing template parameter list +> 'declaration' : type declaration missing template parameter list A template declaration was ill formed. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md index 6e0d8091d5..cda622b333 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md @@ -8,7 +8,7 @@ ms.assetid: 8dbcfa24-8296-4e40-bdc4-5526c07d8892 --- # Compiler Error C2953 -'identifier' : class template has already been defined +> 'identifier' : class template has already been defined Check the source file and include files for other definitions. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md index 521cf7a352..cbe258a9df 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md @@ -8,7 +8,7 @@ ms.assetid: 77709fb6-d69b-46fd-a62f-e8564563d01b --- # Compiler Error C2955 -'identifier' : use of class template or alias generic requires template or generic argument list +> 'identifier' : use of class template or alias generic requires template or generic argument list You cannot use a class template or class generic as an identifier without a template or generic argument list. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md index e2d17ce3dd..678e08e288 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md @@ -8,7 +8,7 @@ ms.assetid: 9cb4526f-4af8-47e9-b786-56192627ca72 --- # Compiler Error C2957 -'delim' : invalid left delimiter : expected '<' +> 'delim' : invalid left delimiter : expected '<' A generic class was ill formed. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2958.md b/docs/error-messages/compiler-errors-2/compiler-error-c2958.md index 7270638399..eddd75f606 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2958.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2958.md @@ -8,7 +8,7 @@ ms.assetid: 332bf6d3-7cd1-4b1a-8ddb-d4a8cbf01115 --- # Compiler Error C2958 -the left delimiter found at 'location' was not matched correctly +> the left delimiter found at 'location' was not matched correctly A delimiter is not properly matched. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md index 6855bf67bb..5720765cfd 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md @@ -8,7 +8,7 @@ ms.assetid: d66bb2a8-70c3-4209-a358-b0c47f111a50 --- # Compiler Error C2959 -a generic class or function may not be a member of a template +> a generic class or function may not be a member of a template For more information, see [Windows Runtime and Managed Templates](../../extensions/windows-runtime-and-managed-templates-cpp-component-extensions.md) and [Generics](../../extensions/generics-cpp-component-extensions.md). diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2962.md b/docs/error-messages/compiler-errors-2/compiler-error-c2962.md index 9059b4b878..18b34b1231 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2962.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2962.md @@ -8,7 +8,7 @@ ms.assetid: 6f966aec-4eea-4221-8e1b-fe66808c6f5c --- # Compiler Error C2962 -syntax error : 'token' : expected template-class member function definition to end with '}' +> syntax error : 'token' : expected template-class member function definition to end with '}' The token caused a syntax error in a template declaration. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md index 47b9816261..3c70de7938 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md @@ -8,7 +8,7 @@ ms.assetid: e4ea3d66-b937-4b2c-b42a-96e03fb11579 --- # Compiler Error C2969 -syntax error : 'symbol' : expected member function definition to end with '}' +> syntax error : 'symbol' : expected member function definition to end with '}' A template member function definition has an unmatched closing brace. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md index 4f25c08138..80ff0e6f7d 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md @@ -8,7 +8,7 @@ ms.assetid: 21d90348-20d3-438c-b278-efdbfb93a7d2 --- # Compiler Error C2970 -'class' : template parameter 'param' : 'arg' : an expression involving objects with internal linkage cannot be used as a non-type argument +> 'class' : template parameter 'param' : 'arg' : an expression involving objects with internal linkage cannot be used as a non-type argument You cannot use the name or address of a static variable as a template argument. The template class expects a const value that can be evaluated at compile time. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md index 2ff75e440c..cb1e18bfd9 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md @@ -8,7 +8,7 @@ ms.assetid: fdb5467b-9a41-41ef-ac20-2e9428d5a4fc --- # Compiler Error C2971 -'class' : template parameter 'param' : 'arg' : a local variable cannot be used as a non-type argument +> 'class' : template parameter 'param' : 'arg' : a local variable cannot be used as a non-type argument You cannot use the name or address of a local variable as a template argument. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2973.md b/docs/error-messages/compiler-errors-2/compiler-error-c2973.md index 2a06b24346..806e4ccc9a 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2973.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2973.md @@ -8,6 +8,6 @@ ms.assetid: 18b4a1c1-0ef6-43af-887a-1b5b1ab88d5b --- # Compiler Error C2973 -invalid template argument 'number' +> invalid template argument 'number' Check the template definition to find the correct types. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md index 1b9610dfcd..2034afee18 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md @@ -8,7 +8,7 @@ ms.assetid: 1b444260-f2bf-48d7-ab1e-35573d8c4a0e --- # Compiler Error C2974 -invalid type argument 'number', type expected +> invalid type argument 'number', type expected The generic or template argument does not match the generic or template declaration. A type should appear within the angle brackets. Check the generic or template definition to find the correct types. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md index 3ed9ac4799..ec6851055f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md @@ -8,7 +8,7 @@ ms.assetid: d9bf9836-325e-4f72-a7e3-a67cf19d32e7 --- # Compiler Error C2976 -'identifier' : too few type arguments +> 'identifier' : too few type arguments A generic or template is missing one or more actual arguments. Check the generic or template declaration to find the correct number of parameters. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md index 4be0207cbb..bacb489f8e 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md @@ -8,7 +8,7 @@ ms.assetid: 3c4218e0-5d03-4a2b-b757-c507c35f3542 --- # Compiler Error C2977 -'identifier' : too many type arguments +> 'identifier' : too many type arguments A generic or template has too many actual arguments. Check the generic or template declaration to find the correct number of parameters. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md index cf6adef493..55df64fa58 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md @@ -7,7 +7,7 @@ helpviewer_keywords: ["C2978"] --- # Compiler Error C2978 -syntax error : expected 'keyword1' or 'keyword2'; found type 'keyword3'; non-type parameters are not supported in generics +> syntax error : expected 'keyword1' or 'keyword2'; found type 'keyword3'; non-type parameters are not supported in generics A generic class was declared incorrectly. See [Generics](../../extensions/generics-cpp-component-extensions.md) for more information. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md index c880a70db6..2fb474dd6f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md @@ -8,7 +8,7 @@ ms.assetid: 98bd9043-ec44-451e-a482-3a8e35fc7464 --- # Compiler Error C2979 -explicit specializations are not supported in generics +> explicit specializations are not supported in generics A generic class was declared incorrectly. See [Generics](../../extensions/generics-cpp-component-extensions.md) for more information. From 7745b4cfd38b7ebf4c0632db866238f3d71f559f Mon Sep 17 00:00:00 2001 From: Rageking8 <106309953+Rageking8@users.noreply.github.com> Date: Mon, 11 Aug 2025 23:38:06 +0800 Subject: [PATCH 2/5] Add "Remarks" and "Example" headings for error references in range [C2941, C2980] --- .../compiler-errors-2/compiler-error-c2941.md | 2 ++ .../compiler-errors-2/compiler-error-c2942.md | 4 ++++ .../compiler-errors-2/compiler-error-c2943.md | 4 ++++ .../compiler-errors-2/compiler-error-c2944.md | 4 ++++ .../compiler-errors-2/compiler-error-c2945.md | 2 ++ .../compiler-errors-2/compiler-error-c2946.md | 2 ++ .../compiler-errors-2/compiler-error-c2947.md | 4 ++++ .../compiler-errors-2/compiler-error-c2948.md | 2 ++ .../compiler-errors-2/compiler-error-c2951.md | 4 ++++ .../compiler-errors-2/compiler-error-c2952.md | 4 ++++ .../compiler-errors-2/compiler-error-c2953.md | 4 ++++ .../compiler-errors-2/compiler-error-c2955.md | 6 ++++-- .../compiler-errors-2/compiler-error-c2956.md | 2 ++ .../compiler-errors-2/compiler-error-c2957.md | 4 ++++ .../compiler-errors-2/compiler-error-c2958.md | 2 ++ .../compiler-errors-2/compiler-error-c2959.md | 2 ++ .../compiler-errors-2/compiler-error-c2962.md | 2 ++ .../compiler-errors-2/compiler-error-c2969.md | 4 ++++ .../compiler-errors-2/compiler-error-c2970.md | 4 ++++ .../compiler-errors-2/compiler-error-c2971.md | 4 ++++ .../compiler-errors-2/compiler-error-c2973.md | 2 ++ .../compiler-errors-2/compiler-error-c2974.md | 4 ++++ .../compiler-errors-2/compiler-error-c2975.md | 4 +++- .../compiler-errors-2/compiler-error-c2976.md | 4 ++++ .../compiler-errors-2/compiler-error-c2977.md | 4 ++++ .../compiler-errors-2/compiler-error-c2978.md | 2 ++ .../compiler-errors-2/compiler-error-c2979.md | 2 ++ 27 files changed, 85 insertions(+), 3 deletions(-) diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2941.md b/docs/error-messages/compiler-errors-2/compiler-error-c2941.md index 53c28a6c84..48c997bc08 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2941.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2941.md @@ -10,6 +10,8 @@ ms.assetid: 1bba94eb-5bf6-468d-8f84-96a6391a7048 > '*class*' : type-class-id redefined as a local 'item' +## Remarks + You can't use a generic or template class as an item. This error is obsolete in Visual Studio 2022 and later versions. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2942.md b/docs/error-messages/compiler-errors-2/compiler-error-c2942.md index 8342663126..a300558b8a 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2942.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2942.md @@ -10,10 +10,14 @@ ms.assetid: 13abf744-8fa1-450d-886d-e5717c04956e > '*class*' : type-class-id redefined as a formal argument of a function +## Remarks + You can't use a generic or template class as a formal argument. You cannot pass an argument directly to the constructor of a generic or template class. This error is obsolete in Visual Studio 2022 and later versions. +## Examples + The following sample generates C2942: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2943.md b/docs/error-messages/compiler-errors-2/compiler-error-c2943.md index 99b4d8f7ab..0f91de379a 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2943.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2943.md @@ -10,10 +10,14 @@ ms.assetid: ede6565e-d892-44c0-8eee-c69545f3be2e > '*class*' : type-class-id redefined as a type argument of a template +## Remarks + You can't use a generic or template class, instead of a symbol, as a generic or template type argument. This error is obsolete in Visual Studio 2022 and later versions. +## Example + The following sample generates C2943: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2944.md b/docs/error-messages/compiler-errors-2/compiler-error-c2944.md index 6886658694..178cb0300e 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2944.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2944.md @@ -10,10 +10,14 @@ ms.assetid: f209e668-e72f-442a-a438-8c4ff43a404a > '*class*' : type-class-id redefined as a value argument of a template +## Remarks + You can't use a generic or template class, instead of a symbol, as a template value argument. This error is obsolete in Visual Studio 2022 and later versions. +## Examples + The following sample generates C2944: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2945.md b/docs/error-messages/compiler-errors-2/compiler-error-c2945.md index dd14477de6..ec81b20ef1 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2945.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2945.md @@ -10,4 +10,6 @@ ms.assetid: be640257-7017-45d1-986a-9fe8caab52f3 > explicit instantiation does not refer to a template-class specialization +## Remarks + You cannot explicitly instantiate something that is not templated. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md index 11de0af1d2..15c453bca8 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md @@ -10,6 +10,8 @@ ms.assetid: c86dfbfc-7702-4f09-8a53-d205710e99c2 > explicit instantiation; 'class' is not a template-class specialization +## Remarks + You cannot explicitly instantiate a nontemplated class. ## Example diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md index db8b7e50be..1b37343eaf 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md @@ -10,10 +10,14 @@ ms.assetid: 6c056f62-ec90-4883-8a67-aeeb6ec13546 > expecting '>' to terminate construct, found 'syntax' +## Remarks + A generic or template argument list may not have been terminated correctly. C2947 can also be generated by syntax errors. +## Example + The following sample generates C2947: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2948.md b/docs/error-messages/compiler-errors-2/compiler-error-c2948.md index 7d7892973c..6fc41cdf2b 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2948.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2948.md @@ -10,4 +10,6 @@ ms.assetid: 780c6ed3-43a0-4112-8d00-b7bf79086c05 > explicit instantiation; storage class specifier 'specifier' not permitted on specialization +## Remarks + You cannot use storage-class specifiers (such as **`extern`**) in a specialization of a template class that was previously explicitly instantiated. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md index a4bf3f395b..a6094c0acd 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md @@ -10,8 +10,12 @@ ms.assetid: c6f95aa2-c894-425b-a51c-d40d70c8daa1 > type declarations are only permitted at global, namespace, or class scope +## Remarks + You cannot declare a generic or template class outside global or namespace scope. If you make your generic or template declarations in an include file, make sure the include file is at global scope. +## Examples + The following sample generates C2951: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md index 40576ad31e..ce6a47e58b 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md @@ -10,8 +10,12 @@ ms.assetid: a40e18a2-d02c-4511-854f-6c6fd6789a1a > 'declaration' : type declaration missing template parameter list +## Remarks + A template declaration was ill formed. +## Examples + The following sample generates C2952: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md index cda622b333..b125625cbb 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md @@ -10,8 +10,12 @@ ms.assetid: 8dbcfa24-8296-4e40-bdc4-5526c07d8892 > 'identifier' : class template has already been defined +## Remarks + Check the source file and include files for other definitions. +## Example + The following sample generates C2953: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md index cbe258a9df..3ee78a6400 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md @@ -10,10 +10,14 @@ ms.assetid: 77709fb6-d69b-46fd-a62f-e8564563d01b > 'identifier' : use of class template or alias generic requires template or generic argument list +## Remarks + You cannot use a class template or class generic as an identifier without a template or generic argument list. For more information, see [Class Templates](../../cpp/class-templates.md). +## Examples + The following sample generates C2955 and shows how to fix it: ```cpp @@ -61,8 +65,6 @@ int main() { } ``` -## Example - **Visual Studio 2017 and later:** The compiler correctly diagnoses missing template argument lists when the template appears in a template parameter list (for example as part of a default template argument or a non-type template parameter). The following code compiles in Visual Studio 2015 but produces an error in Visual Studio 2017. ``` diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2956.md b/docs/error-messages/compiler-errors-2/compiler-error-c2956.md index d5fc918703..c47796370f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2956.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2956.md @@ -9,6 +9,8 @@ helpviewer_keywords: ["C2956"] > usual deallocation function '*function*' would be chosen as placement deallocation function +## Remarks + The deallocation function found for the placement new expression matches one of the usual deallocation functions. Either an implicit compiler-generated deallocation or an explicit `delete` (or `delete[]`) would use the wrong deallocation function. ## Remarks diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md index 678e08e288..2978f88373 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md @@ -10,8 +10,12 @@ ms.assetid: 9cb4526f-4af8-47e9-b786-56192627ca72 > 'delim' : invalid left delimiter : expected '<' +## Remarks + A generic class was ill formed. +## Example + The following sample generates C2957: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2958.md b/docs/error-messages/compiler-errors-2/compiler-error-c2958.md index eddd75f606..d8a0645ad0 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2958.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2958.md @@ -10,6 +10,8 @@ ms.assetid: 332bf6d3-7cd1-4b1a-8ddb-d4a8cbf01115 > the left delimiter found at 'location' was not matched correctly +## Remarks + A delimiter is not properly matched. This error can be caused by mismatched parenthesis in a function template declaration. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md index 5720765cfd..6b32f77262 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md @@ -10,6 +10,8 @@ ms.assetid: d66bb2a8-70c3-4209-a358-b0c47f111a50 > a generic class or function may not be a member of a template +## Remarks + For more information, see [Windows Runtime and Managed Templates](../../extensions/windows-runtime-and-managed-templates-cpp-component-extensions.md) and [Generics](../../extensions/generics-cpp-component-extensions.md). ## Example diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2962.md b/docs/error-messages/compiler-errors-2/compiler-error-c2962.md index 18b34b1231..3636f1fcd5 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2962.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2962.md @@ -10,6 +10,8 @@ ms.assetid: 6f966aec-4eea-4221-8e1b-fe66808c6f5c > syntax error : 'token' : expected template-class member function definition to end with '}' +## Remarks + The token caused a syntax error in a template declaration. This error can be caused by mismatched delimiters diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md index 3c70de7938..599ff99228 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md @@ -10,8 +10,12 @@ ms.assetid: e4ea3d66-b937-4b2c-b42a-96e03fb11579 > syntax error : 'symbol' : expected member function definition to end with '}' +## Remarks + A template member function definition has an unmatched closing brace. +## Example + The following sample generates C2969: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md index 80ff0e6f7d..4384e207de 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md @@ -10,8 +10,12 @@ ms.assetid: 21d90348-20d3-438c-b278-efdbfb93a7d2 > 'class' : template parameter 'param' : 'arg' : an expression involving objects with internal linkage cannot be used as a non-type argument +## Remarks + You cannot use the name or address of a static variable as a template argument. The template class expects a const value that can be evaluated at compile time. +## Example + The following sample generates C2970: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md index cb1e18bfd9..01b6d31d2a 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md @@ -10,8 +10,12 @@ ms.assetid: fdb5467b-9a41-41ef-ac20-2e9428d5a4fc > 'class' : template parameter 'param' : 'arg' : a local variable cannot be used as a non-type argument +## Remarks + You cannot use the name or address of a local variable as a template argument. +## Example + The following sample generates C2971: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2973.md b/docs/error-messages/compiler-errors-2/compiler-error-c2973.md index 806e4ccc9a..4f1a1d9e9f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2973.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2973.md @@ -10,4 +10,6 @@ ms.assetid: 18b4a1c1-0ef6-43af-887a-1b5b1ab88d5b > invalid template argument 'number' +## Remarks + Check the template definition to find the correct types. diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md index 2034afee18..6d30a4ced4 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md @@ -10,8 +10,12 @@ ms.assetid: 1b444260-f2bf-48d7-ab1e-35573d8c4a0e > invalid type argument 'number', type expected +## Remarks + The generic or template argument does not match the generic or template declaration. A type should appear within the angle brackets. Check the generic or template definition to find the correct types. +## Examples + The following sample generates C2974: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2975.md b/docs/error-messages/compiler-errors-2/compiler-error-c2975.md index 5e91d46fa5..e88bcc7d0c 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2975.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2975.md @@ -10,9 +10,11 @@ ms.assetid: 526f6b9d-6c76-4c12-9252-1b1d7c1e06c7 > '*argument*' : invalid template argument for '*type*', expected compile-time constant expression +## Remarks + The template argument does not match the template declaration; a constant expression should appear within the angle brackets. Variables are not allowed as template actual arguments. Check the template definition to find the correct types. -## Example +## Examples The following sample generates C2975 and also shows correct usage: diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md index ec6851055f..a100945995 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md @@ -10,10 +10,14 @@ ms.assetid: d9bf9836-325e-4f72-a7e3-a67cf19d32e7 > 'identifier' : too few type arguments +## Remarks + A generic or template is missing one or more actual arguments. Check the generic or template declaration to find the correct number of parameters. This error can be caused by missing template arguments in C++ Standard Library components. +## Examples + The following sample generates C2976: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md index bacb489f8e..6351cd87ab 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md @@ -10,8 +10,12 @@ ms.assetid: 3c4218e0-5d03-4a2b-b757-c507c35f3542 > 'identifier' : too many type arguments +## Remarks + A generic or template has too many actual arguments. Check the generic or template declaration to find the correct number of parameters. +## Examples + The following sample generates C2977: ```cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md index 55df64fa58..7ad37f4c11 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md @@ -9,6 +9,8 @@ helpviewer_keywords: ["C2978"] > syntax error : expected 'keyword1' or 'keyword2'; found type 'keyword3'; non-type parameters are not supported in generics +## Remarks + A generic class was declared incorrectly. See [Generics](../../extensions/generics-cpp-component-extensions.md) for more information. ## Example diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md index 2fb474dd6f..0acf0cb9a1 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md @@ -10,6 +10,8 @@ ms.assetid: 98bd9043-ec44-451e-a482-3a8e35fc7464 > explicit specializations are not supported in generics +## Remarks + A generic class was declared incorrectly. See [Generics](../../extensions/generics-cpp-component-extensions.md) for more information. ## Example From efa6ffe69d0fae54aeb7226df09cc52bca431d89 Mon Sep 17 00:00:00 2001 From: Rageking8 <106309953+Rageking8@users.noreply.github.com> Date: Mon, 11 Aug 2025 23:39:28 +0800 Subject: [PATCH 3/5] Replace term "sample" with "example" for error references in range [C2941, C2980] --- docs/error-messages/compiler-errors-2/compiler-error-c2942.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2943.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2944.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2946.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2947.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2951.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2952.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2953.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2955.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2957.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2959.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2969.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2970.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2971.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2974.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2975.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2976.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2977.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2978.md | 2 +- docs/error-messages/compiler-errors-2/compiler-error-c2979.md | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2942.md b/docs/error-messages/compiler-errors-2/compiler-error-c2942.md index a300558b8a..7637fb6962 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2942.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2942.md @@ -18,7 +18,7 @@ This error is obsolete in Visual Studio 2022 and later versions. ## Examples -The following sample generates C2942: +The following example generates C2942: ```cpp // C2942.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2943.md b/docs/error-messages/compiler-errors-2/compiler-error-c2943.md index 0f91de379a..dfff0b2c30 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2943.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2943.md @@ -18,7 +18,7 @@ This error is obsolete in Visual Studio 2022 and later versions. ## Example -The following sample generates C2943: +The following example generates C2943: ```cpp // C2943.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2944.md b/docs/error-messages/compiler-errors-2/compiler-error-c2944.md index 178cb0300e..3b58aecf56 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2944.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2944.md @@ -18,7 +18,7 @@ This error is obsolete in Visual Studio 2022 and later versions. ## Examples -The following sample generates C2944: +The following example generates C2944: ```cpp // C2944.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md index 15c453bca8..cd593c8c11 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md @@ -16,7 +16,7 @@ You cannot explicitly instantiate a nontemplated class. ## Example -The following sample generates C2946. +The following example generates C2946. ```cpp // C2946.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md index 1b37343eaf..97b76df03e 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md @@ -18,7 +18,7 @@ C2947 can also be generated by syntax errors. ## Example -The following sample generates C2947: +The following example generates C2947: ```cpp // C2947.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md index a6094c0acd..92f5aab303 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md @@ -16,7 +16,7 @@ You cannot declare a generic or template class outside global or namespace scope ## Examples -The following sample generates C2951: +The following example generates C2951: ```cpp // C2951.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md index ce6a47e58b..2ac4f5650c 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md @@ -16,7 +16,7 @@ A template declaration was ill formed. ## Examples -The following sample generates C2952: +The following example generates C2952: ```cpp // C2952.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md index b125625cbb..c05a495fac 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md @@ -16,7 +16,7 @@ Check the source file and include files for other definitions. ## Example -The following sample generates C2953: +The following example generates C2953: ```cpp // C2953.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md index 3ee78a6400..9a43cfb853 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md @@ -18,7 +18,7 @@ For more information, see [Class Templates](../../cpp/class-templates.md). ## Examples -The following sample generates C2955 and shows how to fix it: +The following example generates C2955 and shows how to fix it: ```cpp // C2955.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md index 2978f88373..ca9e2e38db 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md @@ -16,7 +16,7 @@ A generic class was ill formed. ## Example -The following sample generates C2957: +The following example generates C2957: ```cpp // C2957.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md index 6b32f77262..25db02eeae 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md @@ -16,7 +16,7 @@ For more information, see [Windows Runtime and Managed Templates](../../extensio ## Example -The following sample generates C2959. +The following example generates C2959. ```cpp // C2959.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md index 599ff99228..0b0700d149 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md @@ -16,7 +16,7 @@ A template member function definition has an unmatched closing brace. ## Example -The following sample generates C2969: +The following example generates C2969: ```cpp // C2969.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md index 4384e207de..ec49df394e 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md @@ -16,7 +16,7 @@ You cannot use the name or address of a static variable as a template argument. ## Example -The following sample generates C2970: +The following example generates C2970: ```cpp // C2970.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md index 01b6d31d2a..ef6fdc52e2 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md @@ -16,7 +16,7 @@ You cannot use the name or address of a local variable as a template argument. ## Example -The following sample generates C2971: +The following example generates C2971: ```cpp // C2971.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md index 6d30a4ced4..63cbb1a65c 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md @@ -16,7 +16,7 @@ The generic or template argument does not match the generic or template declarat ## Examples -The following sample generates C2974: +The following example generates C2974: ```cpp // C2974.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2975.md b/docs/error-messages/compiler-errors-2/compiler-error-c2975.md index e88bcc7d0c..021cf829d0 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2975.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2975.md @@ -16,7 +16,7 @@ The template argument does not match the template declaration; a constant expres ## Examples -The following sample generates C2975 and also shows correct usage: +The following example generates C2975 and also shows correct usage: ```cpp // C2975.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md index a100945995..ce5e294b1c 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md @@ -18,7 +18,7 @@ This error can be caused by missing template arguments in C++ Standard Library c ## Examples -The following sample generates C2976: +The following example generates C2976: ```cpp // C2976.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md index 6351cd87ab..810d28566d 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md @@ -16,7 +16,7 @@ A generic or template has too many actual arguments. Check the generic or templa ## Examples -The following sample generates C2977: +The following example generates C2977: ```cpp // C2977.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md index 7ad37f4c11..d9bee87b88 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md @@ -15,7 +15,7 @@ A generic class was declared incorrectly. See [Generics](../../extensions/generi ## Example -The following sample generates C2978. +The following example generates C2978. ```cpp // C2978.cpp diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md index 0acf0cb9a1..74ae7d58b1 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md @@ -16,7 +16,7 @@ A generic class was declared incorrectly. See [Generics](../../extensions/gener ## Example -The following sample generates C2979. +The following example generates C2979. ```cpp // C2979.cpp From dfc2f0766d0a921c0b0262f5c50bc9cb29b05e94 Mon Sep 17 00:00:00 2001 From: Rageking8 <106309953+Rageking8@users.noreply.github.com> Date: Mon, 11 Aug 2025 23:43:23 +0800 Subject: [PATCH 4/5] Update metadata for error references in range [C2941, C2980] --- .../error-messages/compiler-errors-2/compiler-error-c2941.md | 3 +-- .../error-messages/compiler-errors-2/compiler-error-c2942.md | 3 +-- .../error-messages/compiler-errors-2/compiler-error-c2943.md | 3 +-- .../error-messages/compiler-errors-2/compiler-error-c2944.md | 3 +-- .../error-messages/compiler-errors-2/compiler-error-c2945.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2946.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2947.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2948.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2951.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2952.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2953.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2955.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2956.md | 2 +- .../error-messages/compiler-errors-2/compiler-error-c2957.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2958.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2959.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2962.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2969.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2970.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2971.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2973.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2974.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2975.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2976.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2977.md | 5 ++--- .../error-messages/compiler-errors-2/compiler-error-c2979.md | 5 ++--- 26 files changed, 47 insertions(+), 72 deletions(-) diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2941.md b/docs/error-messages/compiler-errors-2/compiler-error-c2941.md index 48c997bc08..4d14d92916 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2941.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2941.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2941" title: "Compiler Error C2941" +description: "Learn more about: Compiler Error C2941" ms.date: 06/01/2022 f1_keywords: ["C2941"] helpviewer_keywords: ["C2941"] -ms.assetid: 1bba94eb-5bf6-468d-8f84-96a6391a7048 --- # Compiler Error C2941 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2942.md b/docs/error-messages/compiler-errors-2/compiler-error-c2942.md index 7637fb6962..f806be0506 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2942.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2942.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2942" title: "Compiler Error C2942" +description: "Learn more about: Compiler Error C2942" ms.date: 06/01/2022 f1_keywords: ["C2942"] helpviewer_keywords: ["C2942"] -ms.assetid: 13abf744-8fa1-450d-886d-e5717c04956e --- # Compiler Error C2942 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2943.md b/docs/error-messages/compiler-errors-2/compiler-error-c2943.md index dfff0b2c30..d2ede6f356 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2943.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2943.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2943" title: "Compiler Error C2943" +description: "Learn more about: Compiler Error C2943" ms.date: 06/01/2022 f1_keywords: ["C2943"] helpviewer_keywords: ["C2943"] -ms.assetid: ede6565e-d892-44c0-8eee-c69545f3be2e --- # Compiler Error C2943 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2944.md b/docs/error-messages/compiler-errors-2/compiler-error-c2944.md index 3b58aecf56..4c2a3a3386 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2944.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2944.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2944" title: "Compiler Error C2944" +description: "Learn more about: Compiler Error C2944" ms.date: 06/01/2022 f1_keywords: ["C2944"] helpviewer_keywords: ["C2944"] -ms.assetid: f209e668-e72f-442a-a438-8c4ff43a404a --- # Compiler Error C2944 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2945.md b/docs/error-messages/compiler-errors-2/compiler-error-c2945.md index ec81b20ef1..9674071222 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2945.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2945.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2945" title: "Compiler Error C2945" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2945" +ms.date: 11/04/2016 f1_keywords: ["C2945"] helpviewer_keywords: ["C2945"] -ms.assetid: be640257-7017-45d1-986a-9fe8caab52f3 --- # Compiler Error C2945 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md index cd593c8c11..01b72d1aeb 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2946.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2946.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2946" title: "Compiler Error C2946" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2946" +ms.date: 11/04/2016 f1_keywords: ["C2946"] helpviewer_keywords: ["C2946"] -ms.assetid: c86dfbfc-7702-4f09-8a53-d205710e99c2 --- # Compiler Error C2946 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md index 97b76df03e..ef70b5db30 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2947.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2947.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2947" title: "Compiler Error C2947" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2947" +ms.date: 11/04/2016 f1_keywords: ["C2947"] helpviewer_keywords: ["C2947"] -ms.assetid: 6c056f62-ec90-4883-8a67-aeeb6ec13546 --- # Compiler Error C2947 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2948.md b/docs/error-messages/compiler-errors-2/compiler-error-c2948.md index 6fc41cdf2b..18dda3d787 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2948.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2948.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2948" title: "Compiler Error C2948" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2948" +ms.date: 11/04/2016 f1_keywords: ["C2948"] helpviewer_keywords: ["C2948"] -ms.assetid: 780c6ed3-43a0-4112-8d00-b7bf79086c05 --- # Compiler Error C2948 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md index 92f5aab303..993bf2811b 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2951.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2951.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2951" title: "Compiler Error C2951" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2951" +ms.date: 11/04/2016 f1_keywords: ["C2951"] helpviewer_keywords: ["C2951"] -ms.assetid: c6f95aa2-c894-425b-a51c-d40d70c8daa1 --- # Compiler Error C2951 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md index 2ac4f5650c..59b2ce3c7f 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2952.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2952.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2952" title: "Compiler Error C2952" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2952" +ms.date: 11/04/2016 f1_keywords: ["C2952"] helpviewer_keywords: ["C2952"] -ms.assetid: a40e18a2-d02c-4511-854f-6c6fd6789a1a --- # Compiler Error C2952 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md index c05a495fac..a9f3ae8178 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2953.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2953.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2953" title: "Compiler Error C2953" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2953" +ms.date: 11/04/2016 f1_keywords: ["C2953"] helpviewer_keywords: ["C2953"] -ms.assetid: 8dbcfa24-8296-4e40-bdc4-5526c07d8892 --- # Compiler Error C2953 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md index 9a43cfb853..9399687901 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2955.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2955.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2955" title: "Compiler Error C2955" -ms.date: "03/28/2017" +description: "Learn more about: Compiler Error C2955" +ms.date: 03/28/2017 f1_keywords: ["C2955"] helpviewer_keywords: ["C2955"] -ms.assetid: 77709fb6-d69b-46fd-a62f-e8564563d01b --- # Compiler Error C2955 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2956.md b/docs/error-messages/compiler-errors-2/compiler-error-c2956.md index c47796370f..e9701d8742 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2956.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2956.md @@ -1,6 +1,6 @@ --- -description: "Learn more about: Compiler Error C2956" title: "Compiler Error C2956" +description: "Learn more about: Compiler Error C2956" ms.date: 04/05/2022 f1_keywords: ["C2956"] helpviewer_keywords: ["C2956"] diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md index ca9e2e38db..2c1e921c6a 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2957.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2957.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2957" title: "Compiler Error C2957" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2957" +ms.date: 11/04/2016 f1_keywords: ["C2957"] helpviewer_keywords: ["C2957"] -ms.assetid: 9cb4526f-4af8-47e9-b786-56192627ca72 --- # Compiler Error C2957 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2958.md b/docs/error-messages/compiler-errors-2/compiler-error-c2958.md index d8a0645ad0..341ff3c1dd 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2958.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2958.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2958" title: "Compiler Error C2958" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2958" +ms.date: 11/04/2016 f1_keywords: ["C2958"] helpviewer_keywords: ["C2958"] -ms.assetid: 332bf6d3-7cd1-4b1a-8ddb-d4a8cbf01115 --- # Compiler Error C2958 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md index 25db02eeae..af70755a70 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2959.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2959.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2959" title: "Compiler Error C2959" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2959" +ms.date: 11/04/2016 f1_keywords: ["C2959"] helpviewer_keywords: ["C2959"] -ms.assetid: d66bb2a8-70c3-4209-a358-b0c47f111a50 --- # Compiler Error C2959 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2962.md b/docs/error-messages/compiler-errors-2/compiler-error-c2962.md index 3636f1fcd5..87f5149e54 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2962.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2962.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2962" title: "Compiler Error C2962" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2962" +ms.date: 11/04/2016 f1_keywords: ["C2962"] helpviewer_keywords: ["C2962"] -ms.assetid: 6f966aec-4eea-4221-8e1b-fe66808c6f5c --- # Compiler Error C2962 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md index 0b0700d149..76d07d1195 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2969.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2969.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2969" title: "Compiler Error C2969" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2969" +ms.date: 11/04/2016 f1_keywords: ["C2969"] helpviewer_keywords: ["C2969"] -ms.assetid: e4ea3d66-b937-4b2c-b42a-96e03fb11579 --- # Compiler Error C2969 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md index ec49df394e..f92b1c4144 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2970.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2970.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2970" title: "Compiler Error C2970" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2970" +ms.date: 11/04/2016 f1_keywords: ["C2970"] helpviewer_keywords: ["C2970"] -ms.assetid: 21d90348-20d3-438c-b278-efdbfb93a7d2 --- # Compiler Error C2970 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md index ef6fdc52e2..667d494be2 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2971.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2971.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2971" title: "Compiler Error C2971" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2971" +ms.date: 11/04/2016 f1_keywords: ["C2971"] helpviewer_keywords: ["C2971"] -ms.assetid: fdb5467b-9a41-41ef-ac20-2e9428d5a4fc --- # Compiler Error C2971 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2973.md b/docs/error-messages/compiler-errors-2/compiler-error-c2973.md index 4f1a1d9e9f..79b7b4ab80 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2973.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2973.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2973" title: "Compiler Error C2973" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2973" +ms.date: 11/04/2016 f1_keywords: ["C2973"] helpviewer_keywords: ["C2973"] -ms.assetid: 18b4a1c1-0ef6-43af-887a-1b5b1ab88d5b --- # Compiler Error C2973 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md index 63cbb1a65c..1ae52a6267 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2974.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2974.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2974" title: "Compiler Error C2974" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2974" +ms.date: 11/04/2016 f1_keywords: ["C2974"] helpviewer_keywords: ["C2974"] -ms.assetid: 1b444260-f2bf-48d7-ab1e-35573d8c4a0e --- # Compiler Error C2974 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2975.md b/docs/error-messages/compiler-errors-2/compiler-error-c2975.md index 021cf829d0..e9254cb923 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2975.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2975.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2975" title: "Compiler Error C2975" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2975" +ms.date: 11/04/2016 f1_keywords: ["C2975"] helpviewer_keywords: ["C2975"] -ms.assetid: 526f6b9d-6c76-4c12-9252-1b1d7c1e06c7 --- # Compiler Error C2975 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md index ce5e294b1c..d9b7e0953b 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2976.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2976.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2976" title: "Compiler Error C2976" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2976" +ms.date: 11/04/2016 f1_keywords: ["C2976"] helpviewer_keywords: ["C2976"] -ms.assetid: d9bf9836-325e-4f72-a7e3-a67cf19d32e7 --- # Compiler Error C2976 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md index 810d28566d..302846e67d 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2977.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2977.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2977" title: "Compiler Error C2977" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2977" +ms.date: 11/04/2016 f1_keywords: ["C2977"] helpviewer_keywords: ["C2977"] -ms.assetid: 3c4218e0-5d03-4a2b-b757-c507c35f3542 --- # Compiler Error C2977 diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md index 74ae7d58b1..691bd16a70 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2979.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2979.md @@ -1,10 +1,9 @@ --- -description: "Learn more about: Compiler Error C2979" title: "Compiler Error C2979" -ms.date: "11/04/2016" +description: "Learn more about: Compiler Error C2979" +ms.date: 11/04/2016 f1_keywords: ["C2979"] helpviewer_keywords: ["C2979"] -ms.assetid: 98bd9043-ec44-451e-a482-3a8e35fc7464 --- # Compiler Error C2979 From 032a5857b592eebbb832b12f77bbde2ed00dc02a Mon Sep 17 00:00:00 2001 From: Rageking8 <106309953+Rageking8@users.noreply.github.com> Date: Mon, 11 Aug 2025 23:46:56 +0800 Subject: [PATCH 5/5] Revert extraneous "Remarks" heading added in C2956 error reference --- docs/error-messages/compiler-errors-2/compiler-error-c2956.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/error-messages/compiler-errors-2/compiler-error-c2956.md b/docs/error-messages/compiler-errors-2/compiler-error-c2956.md index e9701d8742..77f9fee4e4 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2956.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2956.md @@ -13,8 +13,6 @@ helpviewer_keywords: ["C2956"] The deallocation function found for the placement new expression matches one of the usual deallocation functions. Either an implicit compiler-generated deallocation or an explicit `delete` (or `delete[]`) would use the wrong deallocation function. -## Remarks - Error C2956 indicates you used a *placement new expression* (a `new` expression that takes parameters) in a way that can cause a memory leak or runtime crash. It usually means the resulting value can't be deleted in a typical way. That is, either an explicit `delete` (or `delete[]`) expression in your code, or the implicit deallocation when a constructor throws an exception, could invoke the wrong `operator delete` or supply it with the wrong parameters. The C++ standard specifies *usual deallocation functions* as overloads of `operator delete` or `operator delete[]` that take extra parameters of type `std::size_t` (C++14 or later), `std::align_val_t` (C++17 or later), and `std::destroying_delete_t` (C++20 or later). When you use a placement new expression, the compiler looks for a matching `operator delete` function that takes the same parameters (after the first one). If one is found and its signature matches a usual deallocation function, the compiler reports error C2956.