我有一个二维std::array
std::array<std::array<string, n_hieght>, n_width> data_able;
n_hieght
和n_width
是常量变量,我不知道它们对于不同的dataTables
的值,并且获取它们的值的唯一可能方法是使用函数调用。 / p>
const size_t n_hieght = dcmI_image->get_height();
const size_t n_width = dcm_image->get_width();
但这是不可能的,这就是我得到的错误:
error: the value of ‘n_hieght’ is not usable in a constant expression
‘n_hieght’ was not initialized with a constant expression
当然,nWidth也一样。
答案 0 :(得分:3)
数组的大小必须是常量表达式,例如constexpr
或文字,而不仅仅是const
。如果在编译时知道大小,则可以将const
更改为constexpr
。如果在编译时未知大小,则不能直接使用std::array
。