Error del compilador C2971Compiler Error C2971

' Class ': parámetro de plantilla ' param ': ' arg ': no se puede usar una variable local como argumento sin tipo'class' : template parameter 'param' : 'arg' : a local variable cannot be used as a non-type argument

No se puede usar el nombre o la dirección de una variable local como argumento de plantilla.You cannot use the name or address of a local variable as a template argument.

En el ejemplo siguiente se genera C2971:The following sample generates 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;
}