Прочитал тут материалы проходящего БустКона и подумалось:
Сейчас много идёт обсуждений о том, что будет реализовано в новом стандарте: лямбды, статические ассерты, концепты, аспектное программирование, rvalue references, variadic templates, новое поведение цикла for и т.д. и т.п.
Да, все эти вещи хорошо смотрятся и являются фишками стандарта. Можно даже сказать, что они рекламируют и вдыхают новую жизнь в C++. Но если реально подумать, то наибольшее влияние окажут мелочи, которые будут применятся проще и чаще всего:
- auto типизация - не морочим голову с тем как же пишется определения возвращаемых итераторов и лямбд, и смерть применению auto для локальных переменных;
- списки инициализации - наконец-то простое заполнение контейнеров;
- лямбда-функции и новое поведение for/for_each - перестаём ломать голову с функторами в обощённых алгоритмах;
- строгая типизация enum - нет извращениям в преобразованиям к целочисленным типам и назад при работе с enum;
- shared_ptr - garbage collector уже рядом.
Эти "мелочи" за счёт своей легкости применения и чрезвычайно малого порога вхождения окажут наибольшее влияние на пишущих на C++. А вот тяжеловесные "новости" окажут очень слабое влияние - просто потому, что их будут применять чрезвычайно редко. Вон аспекты уже года 4 есть в C# - а как много людей пишет с их применением? Так что простота продолжит управлять миром.
Вот если бы работу с шаблонами сделать ещё проще, то с помощью вариативных шаблонов, можно было бы грохнуть, наконец, макросы, несущие функциональную нагрузку окончательно. А сколько они крови попили...
PS
Вот интересно, как концепты уживутся с range'ами, которые начинает продвигать Александреску?
Комментариев нет:
Отправить комментарий