Delen via


Compilerfout C2975

'argument': ongeldig sjabloonargument voor 'type', verwachte compilatietijdconstante expressie

Opmerkingen

Het sjabloonargument komt niet overeen met de sjabloondeclaratie; er moet een constante expressie worden weergegeven binnen de punthaken. Variabelen zijn niet toegestaan als werkelijke sjabloonargumenten. Controleer de sjabloondefinitie om de juiste typen te vinden.

Voorbeelden

In het volgende voorbeeld wordt C2975 gegenereerd en wordt ook het juiste gebruik weergegeven:

// C2975.cpp
template<int I>
class X {};

int main() {
   int i = 4, j = 2;
   X<i + j> x1;   // C2975
   X<6> x2;   // OK
}

C2975 treedt ook op wanneer u __LINE__ als een compilatieconstante gebruikt met /ZI. Eén oplossing is om mee /Zi te compileren in plaats van /ZI.

// C2975b.cpp
// compile with: /ZI
// processor: x86
template<long line>
void test(void) {}

int main() {
   test<__LINE__>();   // C2975
}