Поддерживает ли C ++ массивы переменной длины?

Нет, подождите, несите меня ...

VLA всегда были расширением GCC, но они были приняты C99:

[C99: 6.7.5.2/4 impression: Если размер не указан, типом массива является неполный тип. Если размер * вместо выражения, Тип массива - это тип массива переменной длины неопределенного размера, который может использоваться только в объявлениях с областью видимости прототипа функции; такой массивы, тем не менее, являются полными типами. Если размер является целым числом постоянное выражение и тип элемента имеет известный постоянный размер, тип массива не является типом массива переменной длины; в противном случае Тип массива - это тип массива переменной длины.

C99 также известен как ISO / IEC 9899: 1999 .

Сейчас:

[C ++ 11: 1.1 / 2]: C ++ - это язык программирования общего назначения, основанный на на языке программирования C, как указано в ISO / IEC 9899: 1999 (далее стандарт C). В добавок к возможности, предоставляемые C, C ++ предоставляет дополнительных типов данных, классов, шаблоны, исключения, пространства имен, перегрузка оператора, имя функции перегрузка, ссылки, бесплатные операторы управления магазином и дополнительные библиотечные помещения.

Разве в C ++ 11 тоже не должно быть VLA?

33
задан M.M 4 November 2014 в 02:24
поделиться