Я хочу создать экземпляр длины массива следующим образом:
#include <iostream>
using namespace std;
template<size_t M, size_t N>
void instanBoolArr(size_t M, size_t N)
{
bool a[M];
bool b[N];
}
int main(void)
{
size_t M = 1;
size_t N = 1;
instanBoolArr(M, N);
return 0;
}
Но компилятор clang сообщил мне об ошибках:
prog.cc: 6: 27:ошибка: объявление параметра шаблона теней 'M' void instanBoolArr (size_t M , size_t N)
prog.cc: 5: 17: примечание: здесь объявлен параметр шаблона template
prog.cc: 6: 37: ошибка: объявление параметра шаблона теней 'N' void instanBoolArr (size_t M, size_t N )
prog.cc: 5: 27:примечание: здесь объявлен параметр шаблона template
prog.cc: 9: 10: предупреждение: неиспользуемая переменная 'b' [-Wunused-variable] bool b [N];
prog.cc: 8: 10: предупреждение: неиспользуемая переменная 'a' [-Wunused-variable] bool a [M];
prog.cc: 17: 5: ошибка: нет соответствующей функции для вызова instanBoolArr instanBoolArr(M, N);
prog.cc: 6: 6: примечание: шаблон кандидата игнорируется: невозможно определить аргумент шаблона 'M' void instanBoolArr (size_t M, size_t N)
версия лязгакомпилятор 7.0.
Я хочу реализовать его таким образом, но я использую шаблон * C ++ и не нашел для себя полезного ответа в сети.
Так что, если не возражаете, PLZ кто-то укажет на мои ошибки и поможет мне в этом.
С уважением.