Re[3]: насчет C++11/14
От: alex_public  
Дата: 04.09.15 21:52
Оценка: +3
Здравствуйте, 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++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.