Condividi tramite


Errore del compilatore C2975

'argument': argomento di modello non valido per 'type', espressione costante in fase di compilazione prevista

L'argomento modello non corrisponde alla dichiarazione del modello; Un'espressione costante deve essere visualizzata tra parentesi angolari. Le variabili non sono consentite come argomenti effettivi del modello. Controllare la definizione di modello per individuare i tipi corretti.

Esempio

L'esempio seguente genera l'errore C2975 e mostra anche l'utilizzo corretto:

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

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

C2975 si verifica anche quando si usa __LINE__ come costante in fase di compilazione con /ZI. Una soluzione consiste nel compilare con /Zi invece di /ZI.

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

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