expressão não foi avaliada como uma constante em C ++ VS
Estou com um erro em que na declaração do VLA está dando erro de "expressão não foi avaliada como uma constante" - tentei declarar int l, m, r, n1, n2 constante, mas ainda assim não funciona. Embora eu esteja ciente do conceito de que o compilador gostaria de saber uma matriz de tamanho fixo em tempo de compilação, no entanto, tenho visto poucas implementações online, onde as pessoas implementaram como abaixo.
Pesquisa wiki adicionalinsira a descrição do link aqui mostraram que nem todas as versões do C ++ o suportam -
Pergunta - como fazê-lo funcionar sem criar alocação dinâmica de memória?
template<typename T>
void mergesort<T>::_merge_array(int l, int m, int r)
{
int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;
/* create temp arrays */
int L[n1], R[n2]; // error -
}