Teilen über


Compilerfehler C2975

'argument' : Ungültiges Vorlagenargument für 'type', erwarteter Konstantenausdruck für kompilierungszeit

Bemerkungen

Das Vorlagenargument stimmt nicht mit der Vorlagendeklaration überein; Ein Konstantenausdruck sollte in den winkeln Klammern angezeigt werden. Variablen sind nicht als tatsächliche Vorlagenargumente zulässig. Überprüfen Sie die Vorlagendefinition, um die richtigen Typen zu ermitteln.

Examples

Im folgenden Beispiel wird C2975 generiert und auch die richtige Verwendung gezeigt:

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

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

C2975 tritt auch auf, wenn Sie __LINE__ als Kompilierungszeitkonstante mit /ZI. Eine Lösung wäre das Kompilieren mit /Zi anstelle von /ZI.

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

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