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..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,15 +1,16 @@ --- -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 > '*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..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,20 +1,23 @@ --- -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 > '*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. -The following sample generates C2942: +## Examples + +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 99b4d8f7ab..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,20 +1,23 @@ --- -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 > '*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. -The following sample generates C2943: +## Example + +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 6886658694..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,20 +1,23 @@ --- -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 > '*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. -The following sample generates C2944: +## Examples + +The following example generates C2944: ```cpp // 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 2d13eb9f49..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,13 +1,14 @@ --- -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 -explicit instantiation does not refer to a template-class specialization +> 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 382b205402..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,20 +1,21 @@ --- -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 -explicit instantiation; 'class' is not a template-class specialization +> explicit instantiation; 'class' is not a template-class specialization + +## Remarks 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 77faf9893e..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,20 +1,23 @@ --- -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 -expecting '>' to terminate construct, found 'syntax' +> 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. -The following sample generates C2947: +## Example + +The following example generates C2947: ```cpp // 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 b3a878a050..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,13 +1,14 @@ --- -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 -explicit instantiation; storage class specifier 'specifier' not permitted on specialization +> 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 a38b41dfaf..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,18 +1,21 @@ --- -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 -type declarations are only permitted at global, namespace, or class scope +> 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. -The following sample generates C2951: +## Examples + +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 9998595a1c..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,18 +1,21 @@ --- -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 -'declaration' : type declaration missing template parameter list +> 'declaration' : type declaration missing template parameter list + +## Remarks A template declaration was ill formed. -The following sample generates C2952: +## Examples + +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 6e0d8091d5..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,18 +1,21 @@ --- -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 -'identifier' : class template has already been defined +> 'identifier' : class template has already been defined + +## Remarks Check the source file and include files for other definitions. -The following sample generates C2953: +## Example + +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 521cf7a352..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,20 +1,23 @@ --- -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 -'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 + +## 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). -The following sample generates C2955 and shows how to fix it: +## Examples + +The following example generates C2955 and shows how to fix it: ```cpp // C2955.cpp @@ -61,8 +64,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..77f9fee4e4 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"] @@ -9,10 +9,10 @@ helpviewer_keywords: ["C2956"] > usual deallocation function '*function*' would be chosen as placement deallocation function -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 +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. + 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. 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..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,18 +1,21 @@ --- -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 -'delim' : invalid left delimiter : expected '<' +> 'delim' : invalid left delimiter : expected '<' + +## Remarks A generic class was ill formed. -The following sample generates C2957: +## Example + +The following example generates C2957: ```cpp // 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 7270638399..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,14 +1,15 @@ --- -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 -the left delimiter found at 'location' was not matched correctly +> the left delimiter found at 'location' was not matched correctly + +## Remarks 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..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,20 +1,21 @@ --- -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 -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 + +## 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 -The following sample generates C2959. +The following example generates C2959. ```cpp // C2959.cpp 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..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,14 +1,15 @@ --- -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 -syntax error : 'token' : expected template-class member function definition to end with '}' +> syntax error : 'token' : expected template-class member function definition to end with '}' + +## Remarks 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..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,18 +1,21 @@ --- -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 -syntax error : 'symbol' : expected member function definition to end with '}' +> syntax error : 'symbol' : expected member function definition to end with '}' + +## Remarks A template member function definition has an unmatched closing brace. -The following sample generates C2969: +## Example + +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 4f25c08138..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,18 +1,21 @@ --- -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 -'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 + +## 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. -The following sample generates C2970: +## Example + +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 2ff75e440c..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,18 +1,21 @@ --- -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 -'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 + +## Remarks You cannot use the name or address of a local variable as a template argument. -The following sample generates C2971: +## Example + +The following example generates C2971: ```cpp // 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 2a06b24346..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,13 +1,14 @@ --- -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 -invalid template argument 'number' +> 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 1b9610dfcd..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,18 +1,21 @@ --- -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 -invalid type argument 'number', type expected +> 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. -The following sample generates C2974: +## Examples + +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 5e91d46fa5..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,20 +1,21 @@ --- -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 > '*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: +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 3ed9ac4799..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,20 +1,23 @@ --- -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 -'identifier' : too few type arguments +> '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. -The following sample generates C2976: +## Examples + +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 4be0207cbb..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,18 +1,21 @@ --- -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 -'identifier' : too many type arguments +> '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. -The following sample generates C2977: +## Examples + +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 cf6adef493..d9bee87b88 100644 --- a/docs/error-messages/compiler-errors-2/compiler-error-c2978.md +++ b/docs/error-messages/compiler-errors-2/compiler-error-c2978.md @@ -7,13 +7,15 @@ 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 + +## Remarks A generic class was declared incorrectly. See [Generics](../../extensions/generics-cpp-component-extensions.md) for more information. ## 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 c880a70db6..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,20 +1,21 @@ --- -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 -explicit specializations are not supported in generics +> 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 -The following sample generates C2979. +The following example generates C2979. ```cpp // C2979.cpp