Errore del compilatore C2970
'class': parametro di modello 'param': 'arg': un'espressione che include oggetti con collegamento interno non può essere usata come argomento non di tipo
Non è possibile usare il nome o l'indirizzo di una variabile statica come argomento modello. La classe modello prevede un valore const che può essere valutato in fase di compilazione.
L'esempio seguente genera l'errore C2970:
// C2970.cpp
// compile with: /c
static int si;
// could declare nonstatic to resolve all errors
// int si;
template <int i>
class X {};
template <int *pi>
class Y {};
X<si> anX; // C2970 cannot use static variable in templates
// this would also work
const int i = 10;
X<i> anX2;