Variable Length Array: Так ли страшен черт, как его малюют?

RU / День 2 / 19:00 / Зал 3

Variable Length Array или VLA, фича из стандарта С99, которую мы имеем в GCC, и clang как нестандартное расширение. При всей своей простоте, эта языковая фича вызывает бурю эмоций среди многих C++ разработчиков. Кто-то считает ее медленной, кто-то просто вредной. Но Евгений попробует убедить вас, что это не так!


Почему этот доклад в программе

Чем хорош спикер: Евгений не понаслышке знает про то, как языковые возможности устроены на низком уровне, в ассемблере, и как реализованы на аппаратных абстракциях. Поэтому поможет разобраться не просто в том, как и когда использовать фичу, но и как она работает.

Чем хороша тема: Причина первая. VLA - нестандартное расширение. И многие разработчики на C++ вообще не знают о его существовании. Тем не менее, оно может быть полезно. Так что узнать про него в деталях стоит. Причина вторая. Даже если вы знаете про VLA, чтобы понимать, когда оно нужно/полезно/стоит использовать, рекомендуется узнать, как оно устроено изнутри. Ведь язык C++ известен именно своей “близостью” у железу, непосредственной работой с аппаратными абстракциями. И наконец, причина третья, VLA это про память, причем память не фиксированного размера, что в C++ многие считают опасным и вредным. Стоит разобраться, как работает расширение и как же его правильно и безопасно использовать.

Кому будет полезно: Всем C++ разработчикам, которые хотят глубоко разбираться в возможностях языка. Даже если вы не планируете использовать VLA, это хороший пример того, как вообще подобные вещи реализованы в языке.

Почему здесь и сейчас: В язык приходит много новых возможностей, но и про старые, пусть и нестандартные расширения забывать не стоит. Поможет освоить язык и научиться понимать, как в нем в целом все работает. А это актуально всегда.