|
| 1.6, Ананоним (?), 16:25, 26/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Эти лямбда-функции только уродуют язык. Для ленющих погромистов, которым влом было писать имена инлайновых функций по старому стилю.
| | |
| |
| 2.37, Алоним (?), 07:39, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Этот C++ только уродует язык C. Для ленющих погромистов, которым влом было писать грамотно структуры и функции.
| | |
| |
| 3.59, Ананоним (?), 20:23, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Согласен только отчасти, всё же в C++ классы это не только структуры C. Исключения, RAII, шаблоны и другие плюшки это очень удобная и красивая автоматика, встроенная в язык. И это не мешает тебе писать в стиле Си, если тебе какие-то вещи С++ не нравятся. Если что, я не использую лямбда функции. То, что некоторые используют те же шаблоны на грани абсурда, уже отдельная тема. Как говориться заставь дурака кое что делать, он и голову расшибёт. Или ногу себе прострелит...
| | |
|
| 2.41, Аноним (41), 10:02, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
А если инлайновую нужно вызвать всего лишь один раз, то зачем напрягать фантазию для придумываия ещё одного имени?
| | |
| |
| 3.56, Ананоним (?), 20:12, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> А если инлайновую нужно вызвать всего лишь один раз, то зачем напрягать
> фантазию для придумываия ещё одного имени?
Имя хорошие программисты выбирают "говорящее", и код становится читабельны
| | |
| 3.57, Ананоним (?), 20:12, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> А если инлайновую нужно вызвать всего лишь один раз, то зачем напрягать
> фантазию для придумываия ещё одного имени?
Имя хорошие программисты выбирают "говорящее", и код становится читабельный, а не вот эти ваши новомодные выкрунтасы...
| | |
|
| 2.52, q (ok), 15:20, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Лень - двигатель прогресса. Не будь человечество лениво, до сих пор бы копали землю палками-копалками. По твоей логике, изобретателям лопат было "влом" копать по-старинке, пусть и подольше.
| | |
| |
| 3.58, Ананоним (?), 20:15, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Лень - двигатель прогресса. Не будь человечество лениво, до сих пор бы
> копали землю палками-копалками. По твоей логике, изобретателям лопат было "влом" копать
> по-старинке, пусть и подольше.
Советская зубная щётка служила годами без особой деградации щетины. Современный пластиковый мусор от "брендов" становится негодным уже после месяца использования. "Прогресс"...
| | |
| |
| 4.60, q (ok), 20:38, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Советская зубная щетка служила годами. Поэтому (и только поэтому!) в C++ не нужны генераторы. Логика -- во! 👍
| | |
| |
| 5.61, Ананоним (?), 20:44, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Советская зубная щетка служила годами. Поэтому (и только поэтому!) в C++ не
> нужны генераторы. Логика -- во! 👍
Логика ничем не хуже твоей :D
| | |
|
| 4.62, фф (?), 21:54, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
зубную щетку меняют раз в пару месяцев, потому что на ней скапливаются микробы.
а не потомучто щетина вышоркалась
| | |
| |
| 5.63, Ананоним (?), 22:28, 27/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
> зубную щетку меняют раз в пару месяцев, потому что на ней скапливаются
> микробы.
> а не потомучто щетина вышоркалась
Ты как образцовая жертва рекламы не в силах осуществлять дезинфекцию своей щётки?
| | |
|
|
|
|
| 1.7, Аноним (7), 16:45, 26/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +14 +/– |
Без do-нотации - набор заклинаний, с do-нотацией - тоже набор заклинаний. А какую задачу решают - неизвестно.
| | |
| |
| 2.13, Аноним (-), 17:11, 26/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> А какую задачу решают - неизвестно.
А ты на хабр сходи - сразу узнаешь.
(Ссылка есть в тексте новости, под новостью и в комментариях, чтобы ты случайно не пропустил)
| | |
| 2.15, Аноним (15), 17:23, 26/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> А какую задачу решают - неизвестно.
Возобновляемые функции.
Удобно при всяком получении данных.
Типа
let records = getRecords(тут твои параметры)
А дальше ты просто интегрируешь records, пока есть данные. getRecords может отдавать записия скажем по 100, инкапсулируя логику перебора и текущие офсеты.
К слову, через yield в него еще и передавать значения можно, правда хз зачем, это будет сложно дебажить
> Без do-нотации - набор заклинаний, с do-нотацией
Ну так оно и сделанно черт пойми какими костылями тут.
При нормальной реализации он должен выглядеть как-то так:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objec
| | |
| |
| 3.27, Bottle (?), 20:55, 26/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хорошо, а как возобновляемые функции помогут тебе на практике?
Что оно решит? Какие технические расчёты проще написать в do-нотации? Станет ли код от этого быстрее?
Станет ли написание кода быстрее?
| | |
| |
| 4.30, Вася Пупкин (?), 23:58, 26/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
"возобновляемые функции" позволяют лаконично отдавать куски данных дальше в следующую часть логики - например обработать и раньше начинать отдавать ответ клиенту потоково. при этом затрачивая меньше оперативы, поскольку не нужно хранить весь итерируемый массив целиком.
| | |
| |
| 5.32, Аноним (7), 02:53, 27/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> лаконично отдавать
Лаконичности тут нету ни в без, ни с. Жаль, люди разучились отвечать на простые вопросы.
| | |
| 5.39, Аноним (39), 09:31, 27/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Как говорил ричард фейнман, если ты не можешь объяснить просто, то ты сам не понимаешь
| | |
|
|
| 3.47, mumu (ok), 13:17, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> let records = getRecords(тут твои параметры)
Вот ТАК и должна выглядеть эта запись. А примеры из новости - грабли по отстреливанию себе ног.
| | |
|
| 2.20, Аноним (-), 18:47, 26/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Чтобы вручную не выпиливать конечный автомат ты можешь воспользоваться генератором, написать вполне себе императивный код, который из цикла будет выплёвывать значения. Генератор выпилит тебе этот конечный автомат. Или это может быть реализовано как корутина. Но фишка в том, что конечный автомат выпиливать вручную требует заметно больше усилий.
А если тебе конкретный пример нужен, то можно взять какой-нибудь лексер, который разбирает поток и выплёвывает токены. На вызывающей стороне это выглядит как итератор по токенам, то есть грубо говоря функция next_token, а реализация -- это конечный автомат. Либо ты пишешь его руками, весь этот switch по состояниям, отслеживая переключения между состояниями, либо ты пишешь императивный код, который просто цикл по байтам.
| | |
| |
| 3.33, Аноним (7), 02:59, 27/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Плохой пример. Лексер, которого дёрнули за next_token, не нуждается уже ни в каких "ду без ду с ду". Вы, наверно, никогда процедурный парсер плюсов не видели безо всякой такой канители.
| | |
| |
| 4.49, Аноним (-), 13:35, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Лексер, которого дёрнули за next_token, не нуждается уже ни в каких "ду без ду с ду".
Ты про контекстно независимую грамматику? Да, в ней не нуждается. Но где ты в последний раз видел контекстно-независимую грамматику?
> Вы, наверно, никогда процедурный парсер плюсов не видели безо всякой такой канители.
Это тот, который не мог различить две закрывающие угловые скобки и оператор сдвига вправо?
| | |
|
|
| 2.36, Смузихлеб забывший пароль (?), 07:28, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Максимально неподдерживаемый код ? ( всм, получить )
Чтобы заказчик потом в любом случае вернулся за доработками именно к тому, кто написал вот-это-вот-всё, т.к остальные тупо отказываются браться за допиливание подобного
В остальном, похоже, давно на плюсЫ не смотрел. А они год от года, похоже, становятся всё уродливей и запутанней
| | |
|
| 1.8, Аноним (8), 16:49, 26/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Сначала был императивный язык, затем поверх навертели функциональный, затем уже поверх него накрутили опять императивный. Цикл замкнулся...
| | |
| |
| 2.11, Аноним (4), 17:05, 26/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
В гитхаб репозитории есть CI/CD. Там и показано, что на gcc оно работает. Да и в статье про это написано (нужен g++ 15.2.1 и выше)
| | |
|
| |
| 2.18, Аноним (4), 18:36, 26/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Потому что могут. Могут и делают. А на основе этого можно сделать ещё что-нибудь другое.
| | |
|
| |
| 2.45, Аноним (45), 10:44, 27/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
...и не только синтаксис! Сама идеология языка - "программистский урод". Вместо того, чтобы ОБЛЕГЧИТЬ программисту работу с такой тонкой штукой, как память, авторы сбросили весь груз на программиста, который сам должен танцевать на костылях и оформлять в коде то, что можно было просто вычислить. Молодцы, чо - слегка приподнялись над ассемблером! 😆
| | |
| |
| 3.55, TeraMeow (?), 19:03, 27/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Последние 10 лет, C++, вообще идёт хз куда. Синтаксис становится просто НЕ подъёмным для начинающих. Особенно учитывая, что авторы новых стандартов, по прежнему пытаются сохранить обратную совместимость. В итоге получается монструозный венегрет раздутого синтаксиса, а безопасности памяти до сих пор нет, на достаточном уровне.
| | |
|
|
| 1.24, Аноним (24), 19:23, 26/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Выглядит как неграмотная попытка студента в TMP. Велосипедов этих написано несчитанное количество. Штука запутывающая код, вызывающая удивление у анализаторов, IDE и сторонних разработчиков.
Автор не мог бы быть любезен озвучить свою фамилию чтобы его точно на работу не брать?
И вообще зачем это здесь?
Низачот.
| | |
| |
| 2.26, Аноним (4), 20:02, 26/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Так оно не для прода. В статье так и сказано, что в прод брать не стоит. В статье всё написано.
| | |
|
| 1.25, Аноним (24), 19:59, 26/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Вот разбираешь легаси код в проекте которому больше 10 лет и такие вот "подарки" коллегам частенько попадаются от какого нибудь неумного студентика который давно свалил и вызывает это много негативных эмоций... приходится вычищать разумеется.
| | |
| |
| 2.29, Аноним (29), 23:17, 26/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
В проектах 30+ лет по стилю кода чувствуешь когда какой функционал появился. Ну и само собой разумеется, стилевой выпендрёж вычищается. Потому что это сложно читать, сложно менять, да и в целом толку мало.
| | |
|
| |
| 2.35, Аноним (7), 03:06, 27/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Проблему присутствия слишком большого объёма свободного времени, которое можно потратить на попытку переварить макроспагетти и создать вокруг него хоть какую-то удобоваримую оболочку.
| | |
|
| 1.44, Аноним (45), 10:41, 27/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> auto result = ::bind(mx, [&](auto&& x) {
> return ::bind(my, [&](auto&& y) {
Господи!! Я сдавал экзамен на 5 баллов по С++, но я уже неспособен читать эти загадочные каракули! Это же ужас... Сейчас пишу на C# и даже не могу представить, что можно так ужасно писать код из сикарашек! Весь C# код читается как бейсик - просто и понятно. И да, указателей тоже полно.
| | |
| 1.54, Аноним (54), 17:30, 27/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это главная проблема любителей C++ после 11 стандарта - "решают" выдуманные проблемы, полностью игнорирая настоящие.
| | |
|