Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
'argument' : argument de modèle non valide pour 'type', expression constante de compilation attendue
L’argument de modèle ne correspond pas à la déclaration de modèle ; une expression constante doit apparaître entre crochets d’angle. Les variables ne sont pas autorisées en tant qu’arguments réels de modèle. Vérifiez la définition du modèle pour trouver les types corrects.
Exemple
L’exemple suivant génère l’erreur C2975 et affiche également l’utilisation correcte :
// C2975.cpp
template<int I>
class X {};
int main() {
int i = 4, j = 2;
X<i + j> x1; // C2975
X<6> x2; // OK
}
C2975 se produit également lorsque vous utilisez __LINE__
comme constante au moment de la compilation avec /ZI
. Une solution consisterait à compiler avec /Zi
au lieu de /ZI
.
// C2975b.cpp
// compile with: /ZI
// processor: x86
template<long line>
void test(void) {}
int main() {
test<__LINE__>(); // C2975
}