Только что слегка припух с крестов, внезапно выяснил что следующая конструкция выкидывает ошибку
unsigned count = block->size();
State lastState[count] = { STATE_START };
мол компилятор изначально хз что есть count, а массив переменной длины это нельзя. про переменную длину не спорю, но это ж блин соседние строки одного блока, где тут переменная длина? объявление count как const не помогает
отвечу всем и сразу - я понимаю что именно может не нравится компилятору, я просто мягко говоря не ожидал такого поведения. размер массива в рантайме вроде как почти во всех языках можно задавать. ну, да, там уже правда не массив, а обычно ссылка на него, иначе размер фрейма хз какой. но никогда не думал что в С это морозилось аж до С99
Перемещено Klymedy из talks