Я заметил, что компилятор G++ разрешает инициализировать такой массив:
vector<vector<string> > partition(string s) {
const int len = s.size();
vector<vector<string> > subPalins[len+1] ;
subPalins[0] = vector<vector<string> >();
subPalins[0].push_back(vector<string>());
bool isPalin[len][len];
...
return subPalins[len];
}
Размер массива subPalins равен len, что является постоянной переменной. Я помню, что нельзя инициализировать массив переменного размера, так как размер массива должен быть определен во время компиляции. Хотя len здесь является константой, это все же переменная, и я не понимаю, почему это разрешено.
size
не является функцией constexpr. - person Shafik Yaghmour   schedule 27.08.2014I noticed that G++ compiler does permit initializing an array like this:
Если вы скомпилировали с параметрами-Wall -pedantic
, вы увидите, что g++ выдает ошибку. - person PaulMcKenzie   schedule 27.08.2014