Я пытаюсь определить стек в стиле c-style, размер которого взят из const-массива и известен во время компиляции.
const int size[2]={100, 100};
int ar[size[0]]; //error: expression must have a constant value
Это не удается. Как это можно исправить?
«массив, размер которого взят из константного массива и известен в время компиляции«
С C ++ 11 вы можете иметь:
constexpr int size[2]={100, 100}; // size[0] is Compile-time constant
использование -std=c++11
или же -std=c++0x
Скомпилировать
Некоторые варианты (с различной степенью популярности):
const int
(C99 или новее или C ++)enum
Размеры массива C ++ должны быть константными выражениями, а не только постоянными данными.
Данные массива, даже если const, не являются константным выражением.