Вариант для распечатки |
Пред. тема | След. тема | ||
| Форум Разговоры, обсуждение новостей | |||
|---|---|---|---|
| Изначальное сообщение | [ Отслеживать ] | ||
| "Реализация генераторов через макросы на C++" | +/– | |
| Сообщение от opennews (??), 26-Мрт-26, 15:56 | ||
Энтузиасты написали генераторы на C++, которые базируются на do-нотации, которая тоже сделана на макросах. Реализация открыта под лицензией MIT... | ||
| Ответить | Правка | Cообщить модератору | ||
| Оглавление |
| Сообщения | [Сортировка по ответам | RSS] |
| 1. Сообщение от Аноним (1), 26-Мрт-26, 15:56 Скрыто ботом-модератором | –1 +/– | |
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 4. Сообщение от Аноним (4), 26-Мрт-26, 16:15 | +/– | |
Если кому надо, то на Habr можно прочитать подробнее про эти генераторы. Про реализацию на лупхолах и реализацию без. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 6. Сообщение от Ананоним (?), 26-Мрт-26, 16:25 | +6 +/– | |
Эти лямбда-функции только уродуют язык. Для ленющих погромистов, которым влом было писать имена инлайновых функций по старому стилю. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #37, #41, #52 | ||
| 7. Сообщение от Аноним (7), 26-Мрт-26, 16:45 | +14 +/– | |
Без do-нотации - набор заклинаний, с do-нотацией - тоже набор заклинаний. А какую задачу решают - неизвестно. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #13, #15, #20, #36 | ||
| 8. Сообщение от Аноним (8), 26-Мрт-26, 16:49 | +/– | |
Сначала был императивный язык, затем поверх навертели функциональный, затем уже поверх него накрутили опять императивный. Цикл замкнулся... | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 10. Сообщение от Аноним (10), 26-Мрт-26, 17:03 | +/– | |
Сабж в GNU g++ работает? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #11 | ||
| 11. Сообщение от Аноним (4), 26-Мрт-26, 17:05 | +/– | |
В гитхаб репозитории есть CI/CD. Там и показано, что на gcc оно работает. Да и в статье про это написано (нужен g++ 15.2.1 и выше) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #10 | ||
| 13. Сообщение от Аноним (-), 26-Мрт-26, 17:11 | –1 +/– | |
> А какую задачу решают - неизвестно. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #7 | ||
| 14. Сообщение от Мемоним (?), 26-Мрт-26, 17:22 | +1 +/– | |
Можно, а зачем? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #18 | ||
| 15. Сообщение от Аноним (15), 26-Мрт-26, 17:23 | +1 +/– | |
> А какую задачу решают - неизвестно. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #7 Ответы: #16, #27, #47 | ||
| 16. Сообщение от Аноним (4), 26-Мрт-26, 17:26 | –1 +/– | |
Так есть же статьи на хабр с объяснением работы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #15 Ответы: #50 | ||
| 17. Сообщение от Аноним (17), 26-Мрт-26, 17:27 | +4 +/– | |
А говорят, что у раст уродливый синтаксис... | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #40, #45 | ||
| 18. Сообщение от Аноним (4), 26-Мрт-26, 18:36 | +/– | |
Потому что могут. Могут и делают. А на основе этого можно сделать ещё что-нибудь другое. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #14 Ответы: #46 | ||
| 20. Сообщение от Аноним (-), 26-Мрт-26, 18:47 | +/– | |
Чтобы вручную не выпиливать конечный автомат ты можешь воспользоваться генератором, написать вполне себе императивный код, который из цикла будет выплёвывать значения. Генератор выпилит тебе этот конечный автомат. Или это может быть реализовано как корутина. Но фишка в том, что конечный автомат выпиливать вручную требует заметно больше усилий. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #7 Ответы: #33 | ||
| 22. Сообщение от Обычный человек (?), 26-Мрт-26, 18:54 | +/– | |
Автор писал новость по принципу: "Посмотрите какой я умный, если интересуюсь такими вещами!" | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 24. Сообщение от Аноним (24), 26-Мрт-26, 19:23 | +2 +/– | |
Выглядит как неграмотная попытка студента в TMP. Велосипедов этих написано несчитанное количество. Штука запутывающая код, вызывающая удивление у анализаторов, IDE и сторонних разработчиков. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #26 | ||
| 25. Сообщение от Аноним (24), 26-Мрт-26, 19:59 | +3 +/– | |
Вот разбираешь легаси код в проекте которому больше 10 лет и такие вот "подарки" коллегам частенько попадаются от какого нибудь неумного студентика который давно свалил и вызывает это много негативных эмоций... приходится вычищать разумеется. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #29 | ||
| 26. Сообщение от Аноним (4), 26-Мрт-26, 20:02 | +/– | |
Так оно не для прода. В статье так и сказано, что в прод брать не стоит. В статье всё написано. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #24 Ответы: #43 | ||
| 27. Сообщение от Bottle (?), 26-Мрт-26, 20:55 | +1 +/– | |
Хорошо, а как возобновляемые функции помогут тебе на практике? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #15 Ответы: #30 | ||
| 28. Сообщение от Аноним (28), 26-Мрт-26, 21:53 Скрыто ботом-модератором | +/– | |
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 29. Сообщение от Аноним (29), 26-Мрт-26, 23:17 | +/– | |
В проектах 30+ лет по стилю кода чувствуешь когда какой функционал появился. Ну и само собой разумеется, стилевой выпендрёж вычищается. Потому что это сложно читать, сложно менять, да и в целом толку мало. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #25 | ||
| 30. Сообщение от Вася Пупкин (?), 26-Мрт-26, 23:58 | +/– | |
"возобновляемые функции" позволяют лаконично отдавать куски данных дальше в следующую часть логики - например обработать и раньше начинать отдавать ответ клиенту потоково. при этом затрачивая меньше оперативы, поскольку не нужно хранить весь итерируемый массив целиком. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #27 Ответы: #32, #39 | ||
| 31. Сообщение от Сусанин (?), 27-Мрт-26, 02:49 | +1 +/– | |
Я не понял, какую реальную проблему всё это решает? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #35, #38 | ||
| 32. Сообщение от Аноним (7), 27-Мрт-26, 02:53 | +1 +/– | |
> лаконично отдавать | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #30 | ||
| 33. Сообщение от Аноним (7), 27-Мрт-26, 02:59 | +1 +/– | |
Плохой пример. Лексер, которого дёрнули за next_token, не нуждается уже ни в каких "ду без ду с ду". Вы, наверно, никогда процедурный парсер плюсов не видели безо всякой такой канители. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #20 Ответы: #49 | ||
| 35. Сообщение от Аноним (7), 27-Мрт-26, 03:06 | +1 +/– | |
Проблему присутствия слишком большого объёма свободного времени, которое можно потратить на попытку переварить макроспагетти и создать вокруг него хоть какую-то удобоваримую оболочку. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #31 | ||
| 36. Сообщение от Смузихлеб забывший пароль (?), 27-Мрт-26, 07:28 | +/– | |
Максимально неподдерживаемый код ? ( всм, получить ) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #7 | ||
| 37. Сообщение от Алоним (?), 27-Мрт-26, 07:39 | +/– | |
Этот C++ только уродует язык C. Для ленющих погромистов, которым влом было писать грамотно структуры и функции. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #6 Ответы: #59 | ||
| 38. Сообщение от bOOster (ok), 27-Мрт-26, 08:11 | +1 +/– | |
Проблему абстрактного мышления студента перед зачетом. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #31 | ||
| 39. Сообщение от Аноним (39), 27-Мрт-26, 09:31 | +1 +/– | |
Как говорил ричард фейнман, если ты не можешь объяснить просто, то ты сам не понимаешь | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #30 | ||
| 40. Сообщение от Аноним (39), 27-Мрт-26, 09:33 | +/– | |
да | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #17 | ||
| 41. Сообщение от Аноним (41), 27-Мрт-26, 10:02 | +/– | |
А если инлайновую нужно вызвать всего лишь один раз, то зачем напрягать фантазию для придумываия ещё одного имени? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #6 Ответы: #56, #57 | ||
| 43. Сообщение от Аноним (7), 27-Мрт-26, 10:12 | +/– | |
> оно не для прода | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #26 | ||
| 44. Сообщение от Аноним (45), 27-Мрт-26, 10:41 | +2 +/– | |
> auto result = ::bind(mx, [&](auto&& x) { | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #53 | ||
| 45. Сообщение от Аноним (45), 27-Мрт-26, 10:44 | +/– | |
...и не только синтаксис! Сама идеология языка - "программистский урод". Вместо того, чтобы ОБЛЕГЧИТЬ программисту работу с такой тонкой штукой, как память, авторы сбросили весь груз на программиста, который сам должен танцевать на костылях и оформлять в коде то, что можно было просто вычислить. Молодцы, чо - слегка приподнялись над ассемблером! 😆 | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #17 Ответы: #55 | ||
| 46. Сообщение от Аноним (46), 27-Мрт-26, 12:35 | +/– | |
И сколько у тебя субличностей, которые это могут и делают? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #18 | ||
| 47. Сообщение от mumu (ok), 27-Мрт-26, 13:17 | +/– | |
> let records = getRecords(тут твои параметры) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #15 | ||
| 49. Сообщение от Аноним (-), 27-Мрт-26, 13:35 | +/– | |
> Лексер, которого дёрнули за next_token, не нуждается уже ни в каких "ду без ду с ду". | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #33 | ||
| 50. Сообщение от Аноним (50), 27-Мрт-26, 14:13 | +/– | |
Прочитал, и всё ещё не понимаю, зачем всё это. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #16 | ||
| 51. Сообщение от Аноним (51), 27-Мрт-26, 15:00 | +1 +/– | |
Не нужно сюда постить эти васянские извращения, пожалуйста. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 52. Сообщение от q (ok), 27-Мрт-26, 15:20 | +/– | |
Лень - двигатель прогресса. Не будь человечество лениво, до сих пор бы копали землю палками-копалками. По твоей логике, изобретателям лопат было "влом" копать по-старинке, пусть и подольше. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #6 Ответы: #58 | ||
| 53. Сообщение от Аноним (53), 27-Мрт-26, 15:38 | +/– | |
5 баллов из 100 так себе достижение | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #44 | ||
| 54. Сообщение от Аноним (54), 27-Мрт-26, 17:30 | +/– | |
Это главная проблема любителей C++ после 11 стандарта - "решают" выдуманные проблемы, полностью игнорирая настоящие. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 55. Сообщение от TeraMeow (?), 27-Мрт-26, 19:03 | –1 +/– | |
Последние 10 лет, C++, вообще идёт хз куда. Синтаксис становится просто НЕ подъёмным для начинающих. Особенно учитывая, что авторы новых стандартов, по прежнему пытаются сохранить обратную совместимость. В итоге получается монструозный венегрет раздутого синтаксиса, а безопасности памяти до сих пор нет, на достаточном уровне. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #45 | ||
| 56. Сообщение от Ананоним (?), 27-Мрт-26, 20:12 | +/– | |
> А если инлайновую нужно вызвать всего лишь один раз, то зачем напрягать | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #41 | ||
| 57. Сообщение от Ананоним (?), 27-Мрт-26, 20:12 | +/– | |
> А если инлайновую нужно вызвать всего лишь один раз, то зачем напрягать | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #41 | ||
| 58. Сообщение от Ананоним (?), 27-Мрт-26, 20:15 | +/– | |
> Лень - двигатель прогресса. Не будь человечество лениво, до сих пор бы | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #52 Ответы: #60, #62 | ||
| 59. Сообщение от Ананоним (?), 27-Мрт-26, 20:23 | +/– | |
Согласен только отчасти, всё же в C++ классы это не только структуры C. Исключения, RAII, шаблоны и другие плюшки это очень удобная и красивая автоматика, встроенная в язык. И это не мешает тебе писать в стиле Си, если тебе какие-то вещи С++ не нравятся. Если что, я не использую лямбда функции. То, что некоторые используют те же шаблоны на грани абсурда, уже отдельная тема. Как говориться заставь дурака кое что делать, он и голову расшибёт. Или ногу себе прострелит... | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #37 | ||
| 60. Сообщение от q (ok), 27-Мрт-26, 20:38 | +/– | |
Советская зубная щетка служила годами. Поэтому (и только поэтому!) в C++ не нужны генераторы. Логика -- во! 👍 | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #58 Ответы: #61 | ||
| 61. Сообщение от Ананоним (?), 27-Мрт-26, 20:44 | +/– | |
> Советская зубная щетка служила годами. Поэтому (и только поэтому!) в C++ не | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #60 | ||
| 62. Сообщение от фф (?), 27-Мрт-26, 21:54 | +/– | |
зубную щетку меняют раз в пару месяцев, потому что на ней скапливаются микробы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #58 Ответы: #63 | ||
| 63. Сообщение от Ананоним (?), 27-Мрт-26, 22:28 | +1 +/– | |
> зубную щетку меняют раз в пару месяцев, потому что на ней скапливаются | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #62 | ||
| 64. Сообщение от Аноним (64), 28-Мрт-26, 02:11 | +/– | |
Без пяти минут перл. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
|
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
|
Закладки на сайте Проследить за страницей |
Created 1996-2026 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |