| 1.4, Карлос Сношайтилис (ok), 12:27, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Возможности, связанные с языком С: Реализован черновик спецификации, определяющей механизм отложенного выполнения "defer"
Если вы не идёте к RAII, RAII идёт к вам
| | |
| |
| 2.34, Аноним (34), 14:42, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Давно пора. Только вот зачем они сделали эту фичу как control block, а не как декларацию с полноценными лямбда-функциями, мне не понятно. Так придётся колхозить замыкания, если надо захватывать значения переменных на этапе defer, что часто бывает нужно. И теперь даже если потом добавят лямбды, с текущим defer они не совместимы. В общем, подложили лишние грабли и себе, и C++.
| | |
| |
| 3.48, Сладкая булочка (?), 15:36, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Давно пора.
Давно уже есть в gcc и используется (например, в коде systemd). Надо просто стандартизовать.
| | |
|
|
| |
| |
| 3.29, злой_ой (?), 14:22, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
как всегда машина времени:
$ cat /usr/ports/devel/llvm22/Makefile | grep ^DISTVERSION
DISTVERSION= 22.1.0
$ ls -la /usr/ports/devel/llvm22/Makefile
-rw-r--r-- 1 root wheel 25902 26 Feb 21:47 /usr/ports/devel/llvm22/Makefile
$ ls -la /usr/ports/devel/llvm22/distinfo
-rw-r--r-- 1 root wheel 180 26 Feb 21:47 /usr/ports/devel/llvm22/distinfo
| | |
|
| 2.24, Аноним (42), 14:08, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Не спеши, может, компиляцию хрома опять сломали. Раст, опять же, к осени ждать только.
| | |
|
| |
| 2.10, Аноним (10), 13:13, 02/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Технологии языков прошлого века, когда родителей раста ещё не было в планах.
| | |
| |
| |
| 4.27, Аноним (34), 14:20, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
На самом деле, эти идеи далеко не новы и обсуждались задолго до Раста. И у конкретно этого решения с метками есть свои минусы и противники, как и у альтернатив. Поэтому долго не стандартизировали. Видимо, просто плюнули и решили, что что-то - лучше, чем ничего.
| | |
| 4.30, злой_ой (?), 14:27, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
подсмотрели метки? у раста?
man perlsyn
/LABEL
уже и не вспомнить, с каких пор там оно.
| | |
|
|
|
| 1.8, Аноним (-), 12:58, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– | |
> Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам и оператору switch, которые можно указывать в операторах break и continue для явного определения цикла, из которого производится выход.
Что только не придумают, лишь бы goto не использовать.
| | |
| 1.12, Сусанин (?), 13:28, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам...
Наконец-то сподобились перетащить это из Perl, в котором это уже десятки лет есть ровно с таким же синтаксисом.
| | |
| |
| |
| 3.18, Аноним (18), 13:59, 02/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Из чего? Это которые в разноцветных шапочках и из ямайки? Они тут причем?
| | |
|
| |
| 3.25, Аноним (-), 14:10, 02/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> GOTO ещё не перетащили?
Пф. зачем перетаскивать технологию устаревщую на десятилетия?
Это же пример убогого овнокода дидов.
| | |
| |
| 4.39, Аноним (34), 15:00, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Эта "устаревшая" технология с успехом решает все задачи на неё возложенные. И кстати, в конкретно этом случае с именованными циклами, польза последних по сравнению с имеющимся goto довольно сомнительна. Наверно, сделали для альтернативно одаренных с фобией goto.
| | |
|
|
|
| 1.14, Аноним (14), 13:40, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Заголовок "Релиз набора компиляторов LLVM 22"
Портянка "Среди улучшений в Clang 22"
Так а в LLVM что-то изменили?
| | |
| |
| 2.17, Аноним (17), 13:45, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Во-первых, clang - часть llvm, поэтому то что изменили в clang то изменили в llvm. Во-вторых, читай новость целиком.
| | |
|
| 1.26, Аноним (26), 14:10, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> операторы сравнения "<", ">", "<=" и ">=" синтезированы из оператора "<=>"
а это вообще что? как? куда? а главное — зачем?
| | |
| |
| 2.31, Аноним (34), 14:31, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Это позволяет определить, сгенерирован ли оператор компилятором на основе operator<=> (фича C++20) или определён пользователем.
https://godbolt.org/z/YcG1jTv8Y
"Зачем" - не знаю, но видимо есть какие-то случаи, когда это может пригодиться.
| | |
|
| 1.33, Аноним (33), 14:38, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
обязательно было вот это Г делать явным?
outer:
for (int i = 0; i < IK; ++ i) {
for (int j = 0; j < JK; ++ j) {
continue; // переход к CONT1
continue outer; // переход к CONT2
// CONT1
}
// CONT2
}
В пхп давно оно неявное, достаточно указать номер уровня вложенности continue 2;
| | |
| |
| 2.35, Аноним (34), 14:46, 02/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Ну да, а потом иди считай, куда твой break или continue на самом деле переходит. Заняться нечем?
С метками тоже переходит не туда, где метка (и это косяк этого решения), но по крайней мере визуально видно о каком цикле речь. К тому же, метку можно назвать как угодно.
| | |
| |
| 3.41, Аноним (33), 15:06, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Заняться нечем?
заняться не чем именно тем, кто мешает понятие меток с уровнем вложенности блочных операторов.
> Ну да, а потом иди считай, куда твой break или continue на самом деле переходит.
А что, ты не должен после добавления нового уровня вложенности пересмотреть все свои условия для break и continue операторов? Или навалял и забыл? И ни на что не должно влиять ваше добавление? Добавил один уровень, ну вот какое значение стоит перед твоим continue, так к нему добавь +1, в чем проблема подсчета? А лучше бы пример привел бы, когда необходим именно именованный блок при добавления нового уровня вложенности.
> С метками тоже переходит не туда, где метка (и это косяк этого решения), но по крайней мере визуально видно о каком цикле речь.
всегда за всякими
} // тут конец цикла
} // вот тут конец условия а
} // ставили коментари
так же и с break и continue можно, не вижу проблемы.
continue 3; // for i
continue 2; // for j
continue 1; // for k
> К тому же, метку можно назвать как угодно.
если существует механизм меток и оператор безусловного перехода, тогда оператор цикла является избыточным.
| | |
|
| |
| 3.43, Аноним (33), 15:10, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Явное лучше неявного.
Согласен, а зачем тогда избыточность в виде оператора цикла, кода есть механизм меток и оператор безусловного перехода. Явное лучше, но почему-то "компилятор умнее". Умному компилятору явно указывать уровень вложенности нет необходимости. Сделали для людей это? Не смешите мои тапочки - Си сделан для людей :))))
| | |
|
| 2.50, Сладкая булочка (?), 15:40, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> В пхп давно оно неявное, достаточно указать номер уровня вложенности continue 2;
Сейчас бы ориентироваться на пых.
| | |
|
| 1.37, Аноним (37), 14:58, 02/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
50+ лет фанаты сишечки рассказывать что "ненужОн ваш RAII!" и без defer обойдемся!
А тут хоба - в драфт стандарта принял))
| | |
| |
| 2.46, 12yoexpert (ok), 15:24, 02/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
RAII это corruption, как раст, превращает straightforward обработку ошибок в какой-то бесполезный ад из костылей
но гуманитариям после курсов или совкового универа этого не понять, их удел - макдональдс или аутсорс
| | |
|
|