Здравствуйте, lpd, Вы писали:
_>>ОК. Можно для начала показать аналог такого http://coliru.stacked-crooked.com/a/ce0de866fa9e05bc элементарного кода? )
lpd>Возможно, в некоторых случаях ламбды сокращают код. Но любую программу можно написать без них (вроде Тьюринг еще доказывал).
Естественно. Весь вопрос в том, чтобы минимизировать количество кода при сохранение функциональности. Лямбды (точнее замыкания) в этом существенно помогают.
lpd>>> Автоопределение возвращаемого функцией типа это ужас, т.к. чтобы понять что мне функция вернет, прийдется читать ее код.
_>>А шаблонные функции (которые принимают не пойми что, и надо читать их код, чтобы понять) — это тоже тогда ужас? )
lpd>Шаблонные функции могут стоить того. Но если вместо auto в объявлении функции программист расшифрует, что именно функция вернет, он вряд ли перетрудится. Даже если там что-то жуткое в стиле C++14.
В некоторых случаях (например как раз для лямбд, собственно во многом ради них auto и ввели) это в принципе невозможно. А в некоторых возможно, но требует существенных усилий (когда тип возвращаемого значения зависит от шаблонного типа параметров) от программиста. И зачем тогда страдать, если это всё может сделать компилятор?
Да, в элементарных случаях применение auto становится спорным случаем — такое надо решать на уровне внутрикомандных правил разработки. Но в некоторых случаях оно просто безальтернативно.
_>>Если новые возможности позволяют писать более краткий и простой или безопасный или быстрый код, то значит их надо изучить и использовать. А то так можно было и на ассемблере остаться...
lpd>Возможно. Но, по моему мнению, направление развития C++ выбрано не лучшее. Этот топик по-идее как раз о том, чего не хватает C++ для популярности в фреймворках. И думаю, что C++14 в этом не помогает.
Что такое "популярность в фреймворках"? ) Если что, библиотек на C/C++ бесчисленное количество. Собственно большинство других языков обычно работает через них, организуя соответствующие биндинги.
Что касается направления развития, то думаю что шаг с C++11 был сделан очень вовремя для языка. Потому как уже очень многие стали посматривать на D и т.п. языки с лямбдами и развитым метапрограммированием. И приход C++11 дал понять, что снова можно какое-то время не искать замену C++.