Поделиться через


Ошибка компилятора C2971

Class: параметр шаблона "param" : "arg": локальная переменная не может использоваться в качестве аргумента, отличного от типа.

Имя или адрес локальной переменной нельзя использовать в качестве аргумента шаблона.

Следующий пример приводит к возникновению ошибки 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;
}