Почему невозможно объявить массив с константным выражением? - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть двумерные std::array,

std::array<std::array<string, n_height>, n_width> data_able;

n_height и n_width - постоянные переменные, значения которых я не знаю для различных dataTables, и единственно возможнаяЧтобы получить их значения, используйте вызов функции:

const size_t n_height = dcmI_image->get_height();
const size_t n_width = dcm_image->get_width();

Но это невозможно, и вот что я получаю как ошибку:

error: the value of ‘n_height’ is not usable in a constant expression
 ‘n_height’ was not initialized with a constant expression

То же самое для nWidthконечно.

1 Ответ

0 голосов
/ 29 сентября 2018

Размер массива должен быть константным выражением, например constexpr или литералом, а не просто const.Если размер известен во время компиляции, вы можете просто изменить const на constexpr.Если размер не известен во время компиляции, вы не можете напрямую использовать std::array.

...