Я не знаком со стандартом C ++ 11, но полагаю, что невозможно установить параметр шаблона во время выполнения.
Вы не можете передать значение, известное только во время выполнения, как аргумент шаблона ... код, созданный созданием экземпляра шаблона, должен быть создан во время компиляции, поэтому он не может зависеть от времени выполнения значение.
Некоторыми возможными решениями являются создание специализаций шаблонов для некоторых общих значений размера массива, а затем возможного значения максимального размера. Хотя я думаю, что это был бы довольно неэффективный способ работы.
Если честно, в вашей ситуации, скорее всего, std::vector
будет лучшим решением, поскольку вы можете просто вызвать resize()
для вектора, чтобы сделать его правильным во время выполнения посредством динамического выделения.