Следующий код компилируется под gcc 4.8 и Clang 3.2:
int main()
{
int size = 10;
int arr[size];
}
8.3.4/1 стандарта С++ говорит, что размер массива должен быть интегральным постоянным выражением, которое size
, похоже, не является. Это ошибка в обоих компиляторах, или я чего-то не хватает?
Последний VС++ CTP отклоняет код с помощью этого интересного сообщения:
error C2466: cannot allocate an array of constant size 0
Интересная часть состоит в том, как кажется, что size
равно нулю. Но, по крайней мере, он отвергает код. Должны ли gcc и Clang делать то же самое?