Erro do Compilador C2971
'class' : parâmetro de modelo 'param' : 'arg' : uma variável local não pode ser usada como um argumento não tipo
Você não pode usar o nome ou o endereço de uma variável local como um argumento de modelo.
O exemplo a seguir gera C2971:
// C2971.cpp
template <int *pi>
class Y {};
int global_var = 0;
int main() {
int local_var = 0;
Y<&local_var> aY; // C2971
// try the following line instead
// Y<&global_var> aY;
}