| |
| |
| |
| 4.290, Аноним (290), 16:28, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
А то в расте работа с динамической памятью не ведётся через Rc/Box/Cell
| | |
|
|
|
| 1.3, Аноним (-), 14:10, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– | |
> Представленные в спецификации возможности частично уже поддерживаются в компиляторах GCC, Clang и Microsoft Visual C++.
И что характерно НИ ОДИН из компиляторов не поддерживает стандарт полностью!
library features так вообще - поддерживаемых почти сколько же сколько не поддерживаемых.
Простите, а это компилятор чего?
Точно С++26, а не какого-то сабсета недоязыка?
| | |
| |
| 2.10, Bottle (?), 14:20, 30/03/2026 [^] [^^] [^^^] [ответить]
| +5 +/– |
А всё благодаря великолепным правилам из разряда "А на этой платформе можно точность другую у интов взять", "Мы будем игнорировать существование #pragma once, гнутых расширений и кланговских, давайте вместо этого ещё что-нибудь из Boost потырим в стандарт за триста франков", "плевать, что в сишке есть restrict, нам не нужна производительность и совместимость в плюсах".
| | |
| |
| 3.26, Аноним (-), 14:37, 30/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Да, то что "можно точность другую у интов взять" это еще ладно.
Если бы в стандарте были только "implementation-defined" с конечным списком вариантов, то было бы ок.
А вот то, что каждый компилятор может выкинуть какие-то фичи, это вообще бред.
Если оставить только 2-3 core language features, это всё еще С++? А если оставить одну?))
Оно ж называется CORE language features, как их можно не реализовывать?
> "плевать, что в сишке есть restrict, нам не нужна производительность и совместимость в плюсах".
СИшка это такой же кусок kalʼа)
Там точно так же не обязаны реализовывать стандарт полностью.
| | |
| |
| 4.28, oficsu (ok), 14:46, 30/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Оно ж называется CORE language features, как их можно не реализовывать?
Core language feature означает вовсе не то, о чём вы подумали. Это лишь способ назвать категорию фич, которые (как правило) нереализуемы библиотечно. Те, которые непосредственно про языковую семантику, а не про надстройки, доступные пользователю
| | |
|
|
| 2.17, oficsu (ok), 14:27, 30/03/2026 [^] [^^] [^^^] [ответить]
| +13 +/– |
Стандарт всегда выходит раньше, чем его поддерживают реализации. Потому что прежде чем делать компилятор, нужно сначала всем собраться вместе и договориться, что делать и как именно. И эту роль как раз и выполняет стандартизация
| | |
| |
| 3.32, Аноним (32), 15:01, 30/03/2026 [^] [^^] [^^^] [ответить]
| +11 +/– | |
> Стандарт всегда выходит раньше, чем его поддерживают реализации.
Это понятно. Плюс на имплементацию нужно время.
Но не понятно почему gcc и шланг не поддерживют фичи не то что с++23, а даже с++20.
Да и более старые тоже.
GCC не поддерживает
"Omitting/extending memory allocations" из C++14 core
[[carries_dependency]] из C++11 core
Что-то вроде есть, но partial.
Шланг - аналогично, но другие штуки.
en.cppreference.com/w/cpp/compiler_support.html
Времени не хватило? С 2011 года))
Или "стандарт" такой что на него можно класть болтяру, даже на core?
| | |
| |
| 4.54, oficsu (ok), 15:40, 30/03/2026 [^] [^^] [^^^] [ответить] | +2 +/– |  Этот пропозал уточняет вординг стандарта и не обязывает компиляторы менять что-л... большой текст свёрнут, показать | | |
| |
| 5.138, Аноним (135), 18:17, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Этот пропозал уточняет вординг стандарта и не обязывает компиляторы менять что-либо. Он расширяет свободу компиляторов, а не сужает. Так что данный пропозал не "не поддерживается", а попросту неприменим к GCC. Именно поэтому там N/A
Хорош стандарт. А потом мы удивляемся, что что-то только шлангом собирается, чему-то GCC подавай, а третье вообще только в MSVC.
| | |
| 5.215, Bottle (?), 23:47, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вот это, конечно, ментальная гимнастика. Что же это за стандарт такой, если его никто не соблюдает? Какое дальше направление твоей прогрессивной мысли - конституция и законодательство не нужны, действуем по наитию и методом кулака с пушкой?
| | |
| |
| 6.230, oficsu (ok), 01:24, 31/03/2026 [^] [^^] [^^^] [ответить] | +1 +/– |  Так Пробую объяснить ещё раз GCC соблюдал правку от Omitting extending memory... большой текст свёрнут, показать | | |
|
|
|
|
|
| 1.4, Аноним (4), 14:11, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +27 +/– |
> Добавлены новые операторы "^^" для получения метаинформации о грамматической конструкции и "[:…:]"
И вот после этого кто-то будет называть раст не читаемым....
| | |
| |
| 2.65, Аноним (65), 16:23, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Эти конструкции для очень продвинутого/глубокого метапрограммирования. Для написания библиотек уровня Boost или Qt. Наверное, в 90% случаев встречаться не будут. А в этом вашем Раст поток подобных символов в обычных прикладных программах.
| | |
| |
| 3.102, Витюшка (?), 17:19, 30/03/2026 [^] [^^] [^^^] [ответить]
| –7 +/– |
Наконец-то C++сники начали что-то подозревать об их уровне программирования
| | |
| 3.147, Скотобаза (?), 18:51, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
В qt уже есть ненапряжный introspection. Зачем вот эта гадость ещё сверху? Если и так работает
| | |
| |
| 4.198, Александр (??), 22:31, 30/03/2026 [^] [^^] [^^^] [ответить]
| +4 +/– |
Потому что в Qt он на костылях собран на основе дополнительного препроцессинга (т.н. MOC компилятор). Эта фича в стандарте позволит выбросить на мороз этот самый препроцессинг (или по крайней мере большую его часть)
| | |
| |
| 5.249, Аноним (249), 08:10, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Эта фича в стандарте позволит выбросить на мороз этот самый препроцессинг
Осталось только понять, зачем выбразывать на мороз то, что отлично работало десятилетиями. Да еще и потом требовать от всех стандарта C++26.
| | |
| |
| 6.300, 12yoexpert (ok), 17:01, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Да еще и потом требовать от всех стандарта C++26.
"потом" - это в случае с qt крайне нескоро, они всегда сохраняют обратную совместимость с помощью ifdef-ов
например, Q_DECL_OVERRIDE во времена, когда ещё не во все компиляторы завезли override
| | |
|
|
|
|
|
| 1.5, Аноним (5), 14:12, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Вот теперь точно пора ливать из C++. Непонятно как все это удерживать в голове и при этом решать задачу предметной области. Поскорее бы zig до ума довели, ибо zig + go хватит всем.
| | |
| |
| 2.9, Ананоним (?), 14:20, 30/03/2026 [^] [^^] [^^^] [ответить]
| +5 +/– |
Просто поинтересуйся на каком стандарте пишут компилятор сами разработчики новых компиляторов. По секрету для тебя: на очень старом, а нововведения всё для тебя, дорогой. Чтобы ты боролся с надуманными проблемами, а не использовал простой язык, на котором всё можно было писать вполне успешно и эффективно ещё 20 лет назад.
| | |
| |
| 3.14, Аноним (5), 14:26, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
>поинтересуйся на каком стандарте пишут компилятор
Это уже не мои проблемы
| | |
| 3.30, Сладкая булочка (?), 14:55, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
> Просто поинтересуйся на каком стандарте пишут компилятор сами разработчики новых компиляторов.
llvm на 17.
> ещё 20 лет назад.
Да, с арифметикой у экспертов туго. Не удивительно, что они что-то бормочат про невозможность сложить два знаковы инта в си.
| | |
| |
| 4.93, Аноним (93), 17:03, 30/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Если Вы знаток: В чем разница реализации (применяемых инструкций) вычислений double и long double на x64?
| | |
| |
| 5.207, Аноним (93), 23:00, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Так как ник "сладкая булочка" не смог ответить, хотя заявлял себя знатоком, то отвечу сам. На x64 вычисления с ним обычно выполняются через SSE2 инструкции (регистры XMM), а long double - через FPU стек.
| | |
|
|
| 3.31, Аноним (32), 14:55, 30/03/2026 [^] [^^] [^^^] [ответить]
| +4 +/– | |
> По секрету для тебя: на очень старом, а нововведения всё для тебя, дорогой.
Вранье же!
LLVM subprojects are primarily written using C++17
И уже мигрируют на с++20
discourse.llvm.org/t/rfc-raise-the-minimum-compiler-requirements-to-move-toward-c-20/88894
Просто компилятор должен компилится компилятором, который есть в дистре.
А дистры очень часто поставляют тухляк.
Если бы дистры не тупили так сильно, то можно было бы и кодовую базу компиляторов переводить на современные стандарты.
| | |
| 3.69, kravich (ok), 16:33, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Наконец-то хоть кто-то это нормально сформулировал
Секрет успешного использования C++ - в самоограничениях
| | |
| |
| 4.261, Аноним (261), 09:45, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Секрет нормального языка - в том чтобы не тащить все и вся по первому зову сойджаков
Жаль что го продолбал этот момент, принеся лженерики
| | |
|
|
| 2.45, Аноним (45), 15:22, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Большую часть из этого вам *обычно* будет не нужна. Но *в некоторых* ситуациях это может очень даже пригодиться. Так что расслабьтесь, не надо - не пользуйтесь и не забивайте голову.
| | |
| 2.226, penetrator (?), 00:26, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
такой цирк сейчас везде, Swift, C#, убожество Kotlin, только Java достаточно консервативна и внедряет постепенно, но минус в том, что многого не хватает, и тогда оно делается через черный вход
что-то нет у меня энтузиазма все это говнище хайповое тащить в проект
если человек писал вермишель, то новый синтаксический сахар только усугубит положение
а если писал проразчно то 90% новых фич тебе не надо
| | |
| 2.260, Аноним (260), 09:29, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
скриптота нужна какая то еще
питон наверное, лучше не придумали пока
| | |
|
| 1.6, Bottle (?), 14:13, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
По классике жанра: а что там с модулями?
Что-нибудь продвинулось? Судя по табличке с cppreference.com воз и ныне там.
| | |
| |
| |
| 3.48, Аноним (45), 15:25, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Ну да, но костылии для их поддержки добавляют до сих пор. В т.ч. и в C++26.
> * Запрещено использование макросов для объявления модулей.
Одно из самых спорных нововведений C++ за всё время.
| | |
| 3.246, Аноним (246), 07:39, 31/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Попытка использовать модули в g++ 14-й и 15-й версий кончилась полным провалом, компилятор тупо падает с "internal compiler error"
| | |
|
| 2.156, Аноним (156), 19:16, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>По классике жанра: а что там с модулями?
Ты чо Паскалист что-ли? Зачем тебе модули?
| | |
| |
| 3.217, Bottle (?), 23:52, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Голодная кума Лиса залезла в сад;
В нем винограду кисти рделись.
У кумушки глаза и зубы разгорелись;
А кисти сочные, как яхонты горят;
Лишь то беда, висят они высоко:
Отколь и как она к ним ни зайдет,
Хоть видит око,
Да зуб неймёт.
Пробившись попусту час целой,
Пошла и говорит с досадою: «Ну, что́ ж!
На взгляд-то он хорош,
Да зелен — ягодки нет зрелой:
Тотчас оскомину набьешь».
| | |
| |
| 4.244, Проходил мимо (?), 07:13, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это нетленное произведение великолепно описывает хейтеров языка Rust.
Тут оно не совсем в тему.
| | |
|
|
|
| 1.7, Аноним (-), 14:16, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> static_assert(^^i != ^^j);
> static_assert(^^i != std::meta::reflect_constant(42));
Хахаха, а потом они будут кричать "в вашам хрусте нечитаемые синтаксис! там много взяких закорючек"))
| | |
| |
| 2.12, Аноним (13), 14:25, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Достаточно Страуструпа (последнее издание). Остальное от лукавого.
| | |
| |
| 3.88, Аноним (93), 17:00, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
А кто узнает чем компилиравали? или Нужный исходник не компилируется в классике.
| | |
|
| 2.187, Аноним (185), 21:37, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ни один человек не знает C++ полностью. История с PL/1 индустрию программирования ничему не научила.
| | |
|
| 1.11, Ананоним (?), 14:24, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Кто-нибудь здесь знает, появились ли уже трансляторы так называемых современных версий C++ в, например, C++03?
| | |
| 1.22, Аноним (22), 14:33, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> Внесены изменения для усиления безопасности стандартной библиотеки, такие как проверки допустимых значений и выхода за границы буфера. Например, при доступе к элементу "constexpr reference operator[](size_type idx) const;" добавляется проверка условия "idx < size()".
Дамы и господа, свершилось!
| | |
| |
| 2.25, Аноним (21), 14:36, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
А зачем оно в стандартной библиотеке? Тебе нужно и проверяй.
| | |
| 2.129, Аноним (129), 17:50, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> Внесены изменения для усиления безопасности стандартной библиотеки, такие как проверки допустимых значений и выхода за границы буфера.
> Дамы и господа, свершилось!
Свершилось оно как всегда: через задницу. Потому что включается оно сугубо через флаг компилятора для всего translation unit-а (а может и вовсе сугубо для всего бинаря - хз, не вникал).
Додуматься добавить директивы типа pragma для включения/выключения этих проверок для конкретных кусков кода - это для комитетных дидов чересчур неподъемная задача. Может, они осилять это где-то к C++40, и плюсы в этом плане наконец-то догонят Турбо Паскаль конца 80х.
| | |
|
| 1.23, Аноним (23), 14:33, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Ну весь D уже перетянули к себе? Что ж, было бы неплохо, если бы плюсы каким-то уже перегруженными не были.
| | |
| |
| 2.152, Аноним (8), 19:03, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Может быть D и неплох. Но к сожалению или к счастью он скорее мертв, чем жив, и вспоминать о нем уже как-то неловко.
| | |
| |
| 3.242, bOOster (ok), 05:54, 31/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Если недоумки не знают о прогрессе в D, то это проблема недоумка, а не языка в целом.
D-шники занимаются своими решениями, а не пиаром, каков бы он не был.
| | |
| |
| 4.250, Аноним (250), 08:27, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> D-шники занимаются своими решениями, а не пиаром, каков бы он не был.
Осталось только понять, какие именно проблемы решают их решения. Ну, вот в контексте того, что в индустрии D практически не используется.
| | |
| |
| 5.258, Аноним (255), 09:10, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
А может, и хорошо, что не используется? Корпорасы не будут гадить его. Должно же что-то быть быть преимущественно для СПО.
| | |
| |
| 6.270, Аноним (270), 10:58, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> А может, и хорошо, что не используется? Корпорасы не будут гадить его.
Ты опечатался в "Корпорасы не будут развивать его."
> Должно же что-то быть быть преимущественно для СПО.
А назови-ка хотя бы 3-4 крупных СПО проекта, написанных на нем.
Ну чтобы увидеть преимущество для СПО))
| | |
|
|
| 4.291, Аноним (291), 16:31, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ага купи продукт на D и потом ищи кто его будет развивать и поддерживать. Величие ЯП определяется количеством кода на нём, а не прогрессом в глазах его секты.
| | |
|
|
|
| 1.29, Аноним (27), 14:53, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Добавлена поддержка рефлексии (Reflection), позволяющей отслеживать и модифицировать элементы программы на стадии компиляции.
> Добавлен оператор "template for" для перебора элементов, таких как пакеты параметров, похожие на кортежи объекты и результаты рефлексии (метаобъекты), на этапе компиляции в стиле обычного цикла.
Теперь-то достаточно языковых средств, чтобы разработчики Qt могли ими заменить свой Meta-Object Compiler (moc) ?
| | |
| |
| 2.38, anon5989517240 (?), 15:10, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
На самом деле не факт - смотря как они решат реализовывать.
В рамках текущей рефлексии работает интроспекция только для структур данных и функций, но она например пока не позволяет достаточно гибко генерировать код методов (насколько я понимаю) так что если Qt и начнет перетаскивать moc туда то или не весь, или будут ждать с++29 😒
| | |
| |
| 3.200, Александр (??), 22:39, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
А в любом случае им 29-й ждать. Просто так сложилось, что норм поддержка фичей в компилях пояаляется +/- к следующему стандарту
| | |
|
| 2.55, Аноним (45), 15:44, 30/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> Теперь-то достаточно языковых средств, чтобы разработчики Qt могли ими заменить свой Meta-Object Compiler (moc) ?
https://www.qt.io/blog/c26-reflection-qrangemodel
> The obvious question is then if and how we plan to use C++26 reflections to replace moc. I have not done a feature-by-feature comparison between the meta object data we need to generate, and what we can get out of std::meta; but it seems that we can make the C++ compiler do much of the work that moc does. The biggest challenge might be the signals: and slots: member function blocks; we might have to annotate every function separately. | | |
|
| |
| 2.63, Аноним (93), 16:15, 30/03/2026 [^] [^^] [^^^] [ответить]
| –8 +/– |
и что хорошего в самоизменении программы? Купил одно, а через год оно превратилось в кирпич (а то и нечто похуже).
| | |
| |
| 3.83, anon5989517240 (?), 16:57, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
строго говоря самомодификация программы к рефлексии не имеет отношения.
Помимо этого вся рефлексия by design живет на compile-time и в рантайм протекает только при отдельном большом желании
| | |
| |
| 4.127, Аноним (93), 17:43, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Просто я смотрю с другой стороны жизни программ. Как легко трескаются .NET программы, например.
| | |
| 4.170, Аноним (93), 20:21, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Открываем инструмент и видим продакшен:
firefox.TargetCreateThread - 55 - push ebp
firefox.IsSandboxedProcess - 55 - push ebp
...
Это не рефлексия?
| | |
|
| 3.180, Аноним (180), 21:20, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Пройтись по всему списку библиотек в директории и найти те, которые похоже на то что нужно, путём проверки наличия требуемых объектов. И выбрать ту, что наиболее подходит.
Да... Ошибки в таком искать - очень сложно. А уж дыр в безопасности.....
Зато пользователя не напрягать. Сам проверил, всё до чего смог дотянуться. Грохнулся - пометил, что плохая. Не грохнулся - работаем дальше.
| | |
|
|
| 1.40, Аноним (40), 15:12, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Реализованы тривиальные бесконечные циклы
> без неопределенного поведения.
Ахаха! Ну надо же!
Оказывается могут когда хотят))
Всего лишь 40 лет понадобилось.
| | |
| |
| 2.64, Аноним (93), 16:18, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Разве трудно самому реализовать отсутствие неопределенности из-за цикла?
| | |
|
| 1.43, Христианин (?), 15:17, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Во имя ОтцаиСынаиСвятагоДуха.
Скажите: а смысл в таких новшествах ?
Раньше вместо пре - был конструктор
вместо пост - деструктор
Но я давно не в теме.
| | |
| |
| 2.47, anon5989517240 (?), 15:25, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Конструктор и деструктор можно только к объекту применить,
а эти проверки можно к аргументам отдельных функций привязывать - эт в других кейсах нужно.
Плюс там можно гибко вырезать из компиляции эти проверки если надо.
| | |
| |
| 3.50, Христианин (?), 15:35, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
СпасиБог что не прошли мимо.
Я это понимаю, но неужели нельзя предусмотреть в объявлении класса ?
Для каких целей нужен новый инструмент
Разрешение использования _ - действительно полезная вещь
| | |
| |
| 4.51, Христианин (?), 15:37, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
вернее в реализации класса ?
Давно отстал от темы.
Сдавал плюсы в начале нулевых на хорошо -4.
Ныне в Белоруссии 10балльная система оценок.
учителям больше чем пятибальная нравится
| | |
| |
| 5.60, Аноним (93), 16:06, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>больше чем пятибальная нравится
Дольше за оценку можно торговаться.
| | |
|
|
|
| 2.52, Аноним (45), 15:37, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Вы путаете конструкторы/деструкторы (которые про инициализацию и освобождение ресурсов) и пре/постусловия (которые про состояние программы в данный момент времени).
| | |
| |
| 3.62, Аноним (62), 16:09, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Чем этот синтаксический сахар лучше обычных древнейших ассертов и статикассертов?
| | |
| |
| 4.125, oficsu (ok), 17:40, 30/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Контракты имеют единый гибкий стандартизированный механизм обработки нарушений, в отличие от ассертов. И ассерты нельзя привязать к результату функции. Ну и предусловия — это способ выразить интерфейс функции. Ассерт внутри тела функции не является таким интерфейсом
| | |
| 4.126, Аноним (45), 17:43, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Тем, что видны на стороне вызывающего функцию, а значит могут быть оптимизированы с учетом вызывающего кода. Кроме того, поведение контрактов настраивается.
| | |
| 4.188, Аноним (185), 21:50, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
assertion - это не часть логики программы, они только для отлова ошибок при отладке. А предусловие, постусловие, инварианты - это часть логики.
| | |
| |
| 5.210, Ананоним (?), 23:12, 30/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
> assertion - это не часть логики программы, они только для отлова ошибок
> при отладке. А предусловие, постусловие, инварианты - это часть логики.
Кто мешал эту логику по старинке в теле функции писать?
| | |
| |
| 6.223, Аноним (185), 00:20, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Контрактное программирование - чтобы всё выглядело культурно. Чтоб красиво было и аккуратно.
| | |
| |
| 7.231, Ананоним (?), 01:56, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Контрактное программирование - чтобы всё выглядело культурно. Чтоб красиво было и аккуратно.
О как! Ты хочешь сказать что стильный код в теле функции это некультурно, некрасиво и неаккуратно?
| | |
|
| 6.293, Аноним (290), 16:38, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Если я правильно понял фишку контрактов, это проверка условий в compile-time, чтобы уронить компиляцию, если вычисление ломает предикат инварианта.
| | |
|
|
| 4.206, Аноним (206), 22:56, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Это чтобы сделать очередной "язык АДА" ;)
Там тоже всякая "безопасность работы с памятью" (как и много чего ещё) на контрактах основана. Но применение потенциально может быть шире. "Мьютекс должен быть разблокирован при выходе из функции (и при вызове функции)" - иначе получаем compile error.
Что реально удалось реализовать - будем посмотреть... Возможно просто получим очередной UB и невнятный warning, отключённый в дефолте (как с exception и прочим).
| | |
| |
| 5.311, Аноним (311), 20:28, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
В Ада совершенно другая модель управления память и контракты к ней не имеют никакого отношения.
Контракты, это доказательство корректности программы, которое выполняется (выводится) во время её компиляции. По сути это static_assert, только не для констант, а для диапазонов значений переменных.
| | |
|
|
|
|
| |
| 2.80, anon5989517240 (?), 16:54, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Наоборот - рефлексия компилится в разы быстрее шаблонов и значительно более читаемая по сравнению с ними
| | |
| |
| |
| 4.167, Аноним (133), 20:10, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Она по определению работает с данными, которые будут известны только в рантайме. Например, загрузить гуй-форму из внешнего ресурсного файла и рефлекснуть её на программные классы.
| | |
| |
| 5.208, Аноним (93), 23:08, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Нет не это. Это предусмотренная структура, которую заполняет загрузчик действительными адресами в рантайме.
| | |
|
| |
| 5.284, Аноним (291), 15:47, 31/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
То есть Вы гарантируете отсутствие следов структуры программы в рантайме. Это проверено Вами (и чем проверено) или прочитано?
| | |
|
|
|
|
| 1.66, Аноним (66), 16:31, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– | |
>Поддерживающие C++26 стандартные библиотеки реализованы в рамках проекта Boost.
Сам неплю-сист. А разве у си плю-плюсников не шаблоны и классы? Библиотеки же у чистого Си?
| | |
| 1.68, Аноним (68), 16:33, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> Добавлена директива "#embed", предназначенная для встраивания в код бинарных ресурсов.
наконец-то хоть что-то полезное!
| | |
| |
| 2.76, Ананоним (?), 16:46, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
>> Добавлена директива "#embed", предназначенная для встраивания в код бинарных ресурсов.
> наконец-то хоть что-то полезное!
Полезное? Очень сомнительно. Для чего тащить в язык то, чему место в linker-е? И о, внезапно, это давно реализовано там. Но редактор связей это немодно, старо и немолодёжно, надо любую гадость тащить в язык, потому что в других недоязыках такое есть. Хехе, верной дорогой идёте....
| | |
| |
| 3.238, oficsu (ok), 03:05, 31/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Для чего тащить в язык то, чему место в linker-е?
Во-первых, на них нет стандарта, чтобы можно было сделать это кроссплатформенно без боли
Во-вторых, #embed делает файл доступным в компилтайме, позволяя обработать ресурс constexpr-функцией, написанной прямо на C++
В случае линковщика придётся как-то обрабатывать такой файл внешним скриптом или, что хуже, компилить плюсовую программу под хостовую систему, чтобы запустить её в билдтайме, чтобы обработать ресурс перед сборкой основной программы
| | |
| |
| 4.262, Ананоним (?), 10:14, 31/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ну ты сам подтвердил что всё можно было и раньше, если хотелось. И твои стремления всё застандартизировать в C++ всё равно потерпят неудачу, потому что C++ это не язык Ada.
| | |
|
|
| 2.221, Аноним (255), 00:15, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Корпорасы будут злоупотреблять этим полезным(?). Появится от них квазиоткрытый софт, со вставкой блобиков в исходники через это.
| | |
| |
| 3.341, Аноним (341), 22:20, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Нет такого злоупотребления, на которое не пойдет корпораст ради 0.03% прибыли. И что? Не жить и не дышать из-за него, что ли?
| | |
|
|
| 1.73, Фанат (?), 16:37, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Хорошо потрудились, с каждым стандартом код получается лаконичнее и понятнее.
| | |
| |
| 2.82, Аноним83 (?), 16:55, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Да вот только язык превращается из "английского" в "китайский" - вместо выражения мыслей с помощью набора букв нужно помнить все 100500 иероглифов.
| | |
| |
| 3.87, Аноним (87), 16:59, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> вместо выражения мыслей с помощью набора букв нужно помнить все 100500 иероглифов
Skill issues.
Для apl вообще отдельная клавиатура/раскладка нужна была.
Зато писали на нем реально умные люди, а не случайный сброд, почитавший "С++ за 21 день"
| | |
| |
| 4.134, Аноним83 (?), 18:11, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Так а толку то с таких умников?
Софта условно надо 10005000 на планету, а умников всего 1050 и они дорогие, да ещё и умирают в самый неподходящий момент.
| | |
| |
| 5.143, Аноним (143), 18:38, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Так а толку то с таких умников?
Толку от них больше чем от сотен 6ыdloкодеров.
> Софта условно надо 10005000 на планету, а умников всего 1050 и они
> дорогие, да ещё и умирают в самый неподходящий момент.
Ой, да не гори ты так.
Никто не заставляет пользоваться новыми штуками. Ну не осилил и не осилил.
Можно продолжать писать как привык в стиле "си с классами".
| | |
| 5.219, Bottle (?), 23:57, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Умников потому и 1050, что они других быть умными не обучают. Классический парадокс учителя и занятого работой специалиста.
| | |
| |
| 6.240, Аноним83 (?), 03:40, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вы ошибаетесь.
Нельзя научить быть умным и всё такое. Можно надрессировать на выполнение определённых функций, с определённой степенью качества.
Для остального надо умень думать самостоятельно и иметь петлю обратной связи, чтобы анализировать свою деятельность и улучшать её.
Многие только воспроизводят то чему их научили.
Научится делать лучше они не могут, у некоторых даже не щёлкает ничего когда они видят чужой чистый код и свой. Даже когда код делает одно и тоже, но у одного там 5 строчек и красиво отформатировано с каментами а у другого или однострочник который надо скролить или 50 строк с кучей мусорных функций и переменных.
| | |
|
|
| 4.165, Сладкая булочка (?), 19:56, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Зато писали на нем реально умные люди, а не случайный сброд, почитавший "С++ за 21 день"
Это странное заявление. Почему яп должен быть супермегасложным? Он наоборот должен быть логичным, легко осваиваемым, компилятор должен в этом помогать.
| | |
| 4.285, анон (?), 15:55, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
давай я сделаю вид, что ты написал это без иронии и спрошу: а что эти умные люди на apl полезного написали?
| | |
|
| 3.96, Фанат (?), 17:10, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Да ладно.
template< class ...Args > requires ( sizeof...(Args) == ValuesCount ) interpolation_by_hermit(Args&&... args) : m_Values{static_cast<numeric>(args)...} {}
Вполне доступно и понятно. Раньше с ума съедешь пока размотаешь переменное число параметров в шаблоне.
| | |
| |
| 4.114, Ананоним (?), 17:29, 30/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Да ладно.
> template< class ...Args > requires ( sizeof...(Args) == ValuesCount ) interpolation_by_hermit(Args&&...
> args) : m_Values{static_cast<numeric>(args)...} {}
> Вполне доступно и понятно. Раньше с ума съедешь пока размотаешь переменное число
> параметров в шаблоне.
Вам не приходила в голову мысль, что переменное число параметров в шаблоне это просто кривое архитектурное решение, и на этапе создания прошлых версий стандарта языка создатели так и считали? А потом язык начали использовать недоархитекторы и забивание гвоздей микроскопами стало обычной практикой.
| | |
| |
| 5.131, Фанат (?), 17:59, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Возможно, плюсы в начале 2000х выглядели эдаким супер макросом. Все знакомые, кто работал с плюсами воспринимали это как неизбежное зло и по возможности уходили на что-то другое. Было написано много кодогенераторов - Qt не дадут соврать :). Поэтому так все исторически медленно развивалось, сейчас ИМХО ругают по старой памяти в основном. После 14 года плюсы стали значительно лучше, не stl, а именно написание своего кода стало более лаконичным и упорядоченным.
| | |
| |
| 6.179, Аноним83 (?), 21:15, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
В начале 2000х выбора особо не было.
Был вижал бейсик, дельфи и вижал с++.
Первое тормозило зато кодилось оч легко, второе было золотой серединой, а третье давало самый производительный результат но требовало больше усилий и времени.
Потом бейсик похоронили и сделали сишарп, которы видимо конкурирует с дельфи, который в итоге и помер.
Чтобы с с/с++ куда то уходили - не слышал. Те от знакомых не слышал, а так бывали всякие истории от анонимов в сети.
| | |
| |
| 7.205, Александр (??), 22:52, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Вижпл бейсик (если брать классику, а не .Net) не столько тормозной был (всё же мог в натив), сколько топорный. Это было как бы обратной стороной его простоты: играюче оперируешь всякими ActiveX'ами, да COM'ами, за то для того, что по сложнее - страдаешь. Но в целом, он и не был рассчитан на какую-то конкуренцию с C++ или Delphi. Скорее как дополнение для C++ (т.е. такой, своего рода связующий код). В этлм плане конкуренция похоже была даже в режиме VisualBasic + C++ VS Delphi. Можно сказать, разные подходы
| | |
|
|
|
| 4.136, Аноним83 (?), 18:13, 30/03/2026 [^] [^^] [^^^] [ответить]
| –7 +/– |
А зачем эти шаблоны нужны?
В моей практике шаблоны понадобились 1-2 раза, когда я написал свой num2str и на входе могли быть разные типы числовые.
И решилось это через простой define на С.
Хотя в общем то до того там просто копипаста была и было не хуже.
| | |
| |
| 5.294, Аноним (292), 16:41, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
function overloading:
#include <iostream>
int sum(int, int);
double sum(double, double);
int sum(int a, int b)
{
return a + b;
}
double sum(double a, double b)
{
return a + b;
}
int main()
{
int result1 {sum(3, 6)}; // выбирается версия int sum(int, int)
std::cout << result1 << std::endl; // 9
double result2 {sum(3.3, 6.6)}; // выбирается версия double sum(double, double)
std::cout << result2 << std::endl; // 9.9
}
| | |
| |
| 6.329, Аноним (313), 21:31, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
"Обрамление" работает только для примитивных типов вроде. (неточно)
| | |
|
|
|
|
| 2.95, Ананоним (?), 17:09, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Хорошо потрудились, с каждым стандартом код получается лаконичнее и понятнее.
Ога,Ю особенно со словом auto очень понятнее :D
| | |
| |
| 3.97, Фанат (?), 17:13, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Именно. Конфетка с с++14 лямбды с auto типами в параметрах.
Data.OnEnd( []( auto& T ){ T = 123; } );
| | |
|
|
| 1.79, Аноним83 (?), 16:53, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
А сколько гениев в мире знают все эти тонкости языка и используют их?
Чото у меня ощущение что в стандарт тянут всё подряд, и работа ради процесса и зарплаты.
| | |
| |
| 2.89, Ананоним (?), 17:00, 30/03/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
> А сколько гениев в мире знают все эти тонкости языка и используют
> их?
> Чото у меня ощущение что в стандарт тянут всё подряд, и работа
> ради процесса и зарплаты.
Мне кажется они таким методом решили закопать C++, чтобы было правдоподобное оправдание переключения на новомодные языки. Вся эта шумиха очень забавна, особенно если посмотреть в какой тишине и тени, относительно этого места, люди используют язык Ada, как пример.
| | |
| 2.90, Аноним (90), 17:01, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> А сколько гениев в мире знают все эти тонкости языка и используют их?
Хм... т.е для системного языка тонкости не нужны?
Может для глупеньких отдельный ЯП сделать, типа ПХП или ЖС.
> Чото у меня ощущение что в стандарт тянут всё подряд, и работа ради процесса и зарплаты.
Ощущения это не факты)
| | |
| |
| 3.106, Ананоним (?), 17:20, 30/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> Может для глупеньких отдельный ЯП сделать, типа ПХП или ЖС.
Вместо следования принципу KISS или "не плоди сущности без особой необходимости", усовершенствователи взяли правило тащить в язык любую ненужную хрень, в итоге это будет не язык, а куча мусора.
| | |
| |
| 4.107, Аноним (93), 17:22, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Проблемы реализации и непротиворечивости кучи мусора на стороне поддержки компиляторами.
| | |
| |
| 5.140, Аноним83 (?), 18:30, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Так а пользоватся то этим кто будет?
Тащить в язык/стандарт/компиляторы всякое что юзает полтора автора на планете в 3 закрытых проектах - это перебор.
Вот в новости они втащили SIMD.
Это же просто капец: с одной стороны и без этого давно инстрикты есть, с другой их сильно больше чем то что втащили. С третьей это всегда выделяется во чтото отдельное и плохо переносимое, и есть либы облегчающие процесс.
Какие то обёртки ради обёрток к общем получаются.
| | |
|
|
| 3.139, Аноним83 (?), 18:26, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
Системного!?
Операционные системы на крестах не пишут, ничего лучше обычного С+асм нет.
Для глупеньких - го сделали.
Пхп делали для простоты в вебне, жс делали как максимально переносимый вместе с виртуальной машиной, по сути это абстракция от ОС и железа.
> Ощущения это не факты)
Это да, язык активно сращивают с разными либами, и собственный синтаксис расширяют.
На примере естественных языков видно как простой и минималистичный английский выигрывает у всяких разных, особенно тех что с иероглифами.
А проектов где суперлиба с кучей своего синтаксиса поверх языка накрученного - я насмотрелся, да и сам подобное делал, и поддерживал чужое.
Как для либы/проекта такое ещё норм, а как для стандарта/языка - сильно сужает мышление и повышает порог входа.
| | |
| |
| 4.145, Аноним (145), 18:40, 30/03/2026 [^] [^^] [^^^] [ответить] | +2 +/– | А на чем написана самая распространенная дестопная ОС в мире На С естественно... большой текст свёрнут, показать | | |
| |
| 5.148, Аноним83 (?), 18:52, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> А на чем написана самая распространенная дестопная ОС в мире?
На С она написана. То что там куча юзерспейсных приложух и либ написана на крестах, шарпе и ещё хз чём - как бы не важно.
Кресты в ядро начали пихать уже сильно потом, где то с висты, с соотвествующим качеством :)
Компилятор - не системное.
> Вот чтобы такого парада велосипедов не было - нужно удачные вещи переносить в стандарт.
Превратить язык в синтаксис при одной мегалибе - лол.
| | |
| |
| 6.157, Аноним (249), 19:32, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> А на чем написана самая распространенная дестопная ОС в мире?
> На С она написана. То что там куча юзерспейсных приложух и либ написана на крестах, шарпе и ещё хз чём - как бы не важно.
Ну вообще-то важно. Эти либы и есть часть ОС (именно ОС, а не только лишь ее ядрышка, которым является твой Линукс), и потому чисто по определению являются примером системного кода.
| | |
| |
| 7.181, Аноним83 (?), 21:20, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Только чисто формально.
Операционная система в основном без крестов, именно то что в ядре. Юзерспейс конечно часть ОС но часто опциональная.
В линухе/бсд я бы системным с юзерспейса назвал libc и ещё немного штуковин, а всякие там системные утили - ну это такое - этого можно и самому легко накодить, используя сисколы/винапи и оно будет ничем не хуже.
| | |
|
| 6.168, Аноним (249), 20:11, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Компилятор - не системное.
Да? А ты чем код компилируешь-то в процессе того самого системного программирования? И чем компилируется сама, блждад, система?
| | |
| |
| 7.182, Аноним83 (?), 21:21, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Компилятор к операционной системе отношения не имеет и для её функционирования не нужен.
Собирать можно и руками, если хватает упоротости :)
| | |
|
|
|
| 4.161, Аноним (249), 19:38, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Операционные системы на крестах не пишут, ничего лучше обычного С+асм нет.
Жаль только, что твои "С + асм" системы приходится собирать комилятором, написанным на крестах. 😭
> ничего лучше обычного С+асм нет.
> Для глупеньких - го сделали.
Хвалить С и одновременно говорить, что Go для глупеньких - это феерическое обделывание собственных штанов. 🤣
| | |
| |
| 5.183, Аноним83 (?), 21:22, 30/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
Го так авторы позиционировали - причём тут я?
Компиляторы С есть сильно разные, в том числе и те которые без крестов написаны и которые используются для бутстрапа крестовых.
| | |
|
|
|
| 2.216, Аноним (216), 23:49, 30/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Походу, в сипиписники проникли пepдyны из PL/1 :)) Там тоже много чего напихали и язык.... благополучно сдох!
| | |
|
| 1.81, Аноним (93), 16:54, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
>Добавлена директива "#embed", предназначенная для встраивания в код бинарных ресурсов.
Дорогу блобам
| | |
| 1.85, Аноним (85), 16:58, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Опять начали ныть в комментариях; всё им не так и не эдак. Вас никто не заставляет учить все эти заклинания. Зато если какие-то из них вам понадобятся в будущем, - спасибо скажете;) А до тех пор, - не надо заморачиваться.
| | |
| |
| 2.92, Ананоним (?), 17:01, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Опять начали ныть в комментариях; всё им не так и не эдак.
> Вас никто не заставляет учить все эти заклинания. Зато если какие-то
> из них вам понадобятся в будущем, - спасибо скажете;) А до
> тех пор, - не надо заморачиваться.
Ты наверно не читатель кода, а только пейсатель. Это объясняет твои шумы в лужу.
| | |
| |
| 3.104, Аноним (85), 17:19, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Не вижу проблем. Что мешает заранее договориться о том какие фичи языка будут использоваться в проекте, а какие нет? Тогда с чтением проблем не возникнет!
Если ваш мозг чувствует что этот язык не для вас, - используйте другой, - это нормально, не надо насиловать свой мозг! Однако это не значит, что сам язык плохой.
Например, мой мозг не хочет воспринимать Lisp, или например Zig, - это же не значит что языки плохие. У кого-то будет наоборот. Говорю же, не надо заморачиваться, не нравится, - не пользуйтесь; найдите то что вам подходит лучше всего и приносит удовольствие.
| | |
| |
| 4.108, Ананоним (?), 17:23, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Не вижу проблем. Что мешает заранее договориться о том какие фичи языка
> будут использоваться в проекте, а какие нет? Тогда с чтением проблем
> не возникнет!
Ога! Осталось только договориться со всеми программистами мира, чтобы не читать потом этот "код", в поисках жучков в открытых проектах.
| | |
| |
| 5.118, Аноним (85), 17:32, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
У каждого проекта вполне могут быть свои критерии к тому в каком стиле писать и какие фичи языка использовать. Не вижу никаких проблем. Захотели присоединиться к проекту?, - будьте любезны изучить стиль в котором надо писать. Если не нравится стиль,? - найдите другой проект. Не нашли подходящий, создайте свой и озвучьте свои требования по написанию кода.
| | |
|
|
| 3.159, Сладкая булочка (?), 19:36, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> Опять начали ныть в комментариях; всё им не так и не эдак.
>> Вас никто не заставляет учить все эти заклинания. Зато если какие-то
>> из них вам понадобятся в будущем, - спасибо скажете;) А до
>> тех пор, - не надо заморачиваться.
> Ты наверно не читатель кода, а только пейсатель. Это объясняет твои шумы
> в лужу.
В чем он не прав? Зависит от проекта. Полно открытого кода, где много чего не используется. Например, откройте google/re2 и покажите где там какое-то не понятное заклинание?
| | |
|
|
| 1.113, Аноним (113), 17:29, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– | |
>Добавлена библиотека std::simd для распараллеливания выполнения операций над данными при помощи наборов инструкций SIMD,
Я пробовал, говно она, самых нужных интринсиков в ней нет, а какие есть - они отлично авто векторизуются компилятором и без использования симда вручную, нужно только идиомы знать. Кому нужен слой абстракции - используйте либы от третьих разрабов.
| | |
| 1.115, Tita_M (ok), 17:29, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
"C++ is an insult to the human brain" Niklaus Wirth.
Не знаю высказывался ли Никлаус Вирт о Rust, но я уверен, что он от него в восторге точно не был.
Я считаю, что подобные языки оставляют очень сильные патологические следы в структурах мозга программирующих на них.
| | |
| |
| |
| |
| 4.204, Сладкая булочка (?), 22:49, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Сборка мусора не причём. Речь шла о ненадёжности языка.
Дык у Вирта в паскале также был ub при null dereference, type puning в union, чтение не инициализированных переменных и др.
| | |
| |
| 5.224, Аноним (185), 00:24, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Дак и в Обероне тоже есть неопред. поведение. Что плохого? Вирт намеренно их ввёл, чтобы не ограничивать разработчиков компиляторов.
| | |
| |
| 6.232, Сладкая булочка (?), 02:11, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Дак и в Обероне тоже есть неопред. поведение. Что плохого?
Тогда о какой надежности речь? Применение gc сразу убирает этот язык для сравнения с cpp.
> Вирт намеренно
> их ввёл, чтобы не ограничивать разработчиков компиляторов.
Сколько сейчас активно развиваемых компиляторов оберона?
| | |
| |
| 7.296, Аноним (292), 16:52, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
>Тогда о какой надежности речь? Применение gc сразу убирает этот язык для сравнения с cpp.
Проблема C++ не в том, что в нём нет сборки мусора (например в Ada и Modula-2 тоже нет и при этом они надёжные), а в том, что его синтаксис основан на ненадёжном C. Всё дело в синтаксисе.
>Сколько сейчас активно развиваемых компиляторов оберона?
Oberon - это всего лишь заготовка языка, ядро языка, которое само по себе непрактично. Вирт ведь делал науку, а не бизнес-инструменты. Но на основе Oberona создали Java, C#, Go.
| | |
| |
| |
| 9.312, Аноним (309), 20:29, 31/03/2026 [^] [^^] [^^^] [ответить] | +1 +/– | Нет, в этих языках недостатки синтаксиса исправлены Специально сделал запрос Ал... большой текст свёрнут, показать | | |
|
|
|
|
| 5.269, RM (ok), 10:55, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Точно у Вирта в Паскале?
А не в Турбо/Дельфи его диалекте?
А то как-то указателей в Паскале когда нам его преподавали с лабими на СМ-4/ОСРВ я что-то не припомню.
Кроме того, UB UB рознь, undefined vs unspecified. второе приемлимо, диск не сформатирует. Что именно про Паскаль имелось в виду?
| | |
| |
| 6.281, Сладкая булочка (?), 14:58, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Точно у Вирта в Паскале?
> А не в Турбо/Дельфи его диалекте?
> А то как-то указателей в Паскале когда нам его преподавали с лабими
> на СМ-4/ОСРВ я что-то не припомню.
Видимо плохо преподавали или память куриная.
> Кроме того, UB UB рознь, undefined vs unspecified. второе приемлимо, диск не
> сформатирует.
Где ub сформатирует диск хоть в любом языке? Пруфы будут?
| | |
| 6.315, Диванодав (?), 20:54, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
В виртовском Паскале изначально указателей не было.
Потом Вирт с большой неохотой их добавил, но для них не было арифметики и приведения (кастинга), и не было укаателей на функции. То есть указатели в виртовском Паскале были надёжными.
| | |
| |
| 7.328, Сладкая булочка (?), 21:26, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> В виртовском Паскале изначально указателей не было.
Какая разница, что там было в начале? В книках Вирта они были, в стандарте iso7185 они также есть.
> Потом Вирт с большой неохотой их добавил, но для них не было
> арифметики и приведения (кастинга), и не было укаателей на функции. То
> есть указатели в виртовском Паскале были надёжными.
Не надо употреблять слово "надежный" без доказательств. Разыменование неинициализированного указателя или висячие указатели уже отвергают ненадежность. И предлагалось это решать ручным занулением.
| | |
|
|
|
|
|
|
| 1.117, Аноним (113), 17:31, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– | |
>Добавлена директива "#embed", предназначенная для встраивания в код бинарных ресурсов.
#embed "/etc/shadow"
и пришлите нам крэш-дамп, пожалуйста.
| | |
| |
| 2.222, Аноним (255), 00:19, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Так ещё до креша форкнется и запустится процесс crashed-telemetryd.
| | |
|
| 1.119, Аноним (113), 17:33, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– | |
>Реализована структура данных std::hive для неупорядоченного хранения данных
Рулез.
| | |
| 1.120, Аноним (120), 17:33, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– | |
вместо того чтобы упрощать язык они его усложняют. подработка на пенсии вот что все эти стандарты за последние лет 20.
один int x[n] для сишечки чего стоит. наркоманы чертовы.
auto чтобы все запутать. убогие треды хотя есть libpthread.
двадцать блин лет и куча левого мусора который только все усложняет, а не упрощает
| | |
| |
| 2.124, Аноним (113), 17:40, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>двадцать блин лет и куча левого мусора который только все усложняет, а не упрощает
как язык назовёшь - тех он и притягивает ;)
| | |
| 2.169, Аноним (249), 20:20, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> auto чтобы все запутать
Да, мне вот очень надо при работе с текстом видеть на каждой строке "const std::string&", а то вдруг забуду и запутаюсь! 😱
> убогие треды хотя есть libpthread.
А в чем заключается убогость? Ты же понимаешь, что ни один плюсовик не будет в здравом уме сношаться с сишочным libpthread чтобы получитьна ровном месте лишь гемор ручного управления ресурсами?
| | |
|
| 1.122, Аноним (113), 17:37, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
И ещё. std::ranges::* - тормознутее <algorithm> и кода вручную. Во всех компиляторах. В GCC, разумеется, намного тормознее, чем в шланге. std::iota такая же быстрая, как и ручной цикл. Но все маппинги-редукции тормозят жутко, на порядки, да, при -O3 и -flto. Stay away.
| | |
| |
| 2.286, анон (?), 16:11, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
кто бы мог подумать, что "все эти надстройки над надстройками существуют только на этапе компиляции, компилятор всё разрулит и всё будет работать быстро" не работает на практике? Что дальше? люди догадаются, что 0-terminated строки и deep copy по умолчанию это плохие идеи?
| | |
| |
| 3.318, Аноним (321), 20:57, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ну с 0-терминированными строками std::string_view и std::span<char> проблему давно решили.
| | |
|
|
| 1.128, LaunchWiskey (ok), 17:47, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Астанавитесь! C++ 11 уже был перебором, до него всё необходимое, что нужно грамотному программисту, в языке уже имелось.
| | |
| |
| 2.130, Ананоним (?), 17:56, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Астанавитесь!
Та этим словом сам подтвердил... не остановятся. А с остальной частью твоего сообщения я полностью согласен. Были не самые красивые тонкие места, но они успешно обходились несложными способами.
| | |
| 2.132, Фанат (?), 18:02, 30/03/2026 [^] [^^] [^^^] [ответить]
| +3 +/– |
Да ладно! constexpr, consteval что неудобны ? а лямбды с auto параметрами ?
| | |
| |
| 3.141, Аноним (249), 18:32, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> С++ 11 уже был перебором, до него всё необходимое, что нужно грамотному программисту, в языке уже имелось.
> constexpr, consteval что неудобны ? а лямбды с auto параметрами ?
Это все для неграмотных. 😤 Особенно мув-сесантика с умными указателями: грамотные ручками с ресурсами сношаются через new/delete!
| | |
|
|
| 1.146, Аноним (249), 18:42, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– | |
Господи, к какому стандарту они наконец-то разродятся функциями кодировки UTF?
Причем маразм в том, что они как бы и так требуются для filesystem::path и существуют под его капотом, но вот чтобы явно и отдельно их добавить в библиотеку - шишь вам!
| | |
| |
| 2.150, Аноним (150), 18:58, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Когда-то был std::filesystem::u8path(). Видимо, что-то не пошло у ребят с UTF8. НУ НЕ ШМОГЛА Я
| | |
| 2.151, Аноним (150), 18:59, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Ещё есть прикол, заключается в том, если вдруг понадобится итерироваться по символам в UTF-8 строке, тебе придётся переводить её в std::wstring с помощью функций codecvt или использовать сторонние решения. Конвертация строк между кодировками - это как минимум лишние аллокации, как максимум костыльно
| | |
| |
| 3.228, warlock (??), 00:47, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> если вдруг понадобится итерироваться по символам в UTF-8 строке, тебе придётся переводить её в std::wstring
Это непереносимо. На Линукс и похожих сработает, а на Windows нет. Так что если всё-таки надо итерироваться по символам (сиречь кодепойнтам), что, кстати, надо очень-очень редко, может даже по графемам чаще надо, то лучше нормальное сторонее или самописное решение.
| | |
| 3.274, Аноним (45), 11:42, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Если вам надо активно работать с текстом, то эффективнее и правда перевести всё в UTF-32 и работать с ним. По меньшей мере, так будет работать произвольный доступ и не надо пердолиться с постоянным декодированием. Только в C++ для этого есть std::u32string, а не std::wstring.
| | |
| |
| 4.283, Аноним (22), 15:39, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Произвольность условна. Одна графема всё равно может занимать несколько 32-битных значений в UTF-32.
| | |
|
|
| 2.275, Аноним (45), 11:45, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Причем маразм в том, что они как бы и так требуются для filesystem::path и существуют под его капотом
За это спасибо скажите винде. filesystem::path по wchar_t существует исключительно для неё.
| | |
|
| |
| |
| |
| |
| |
| |
| 7.253, Аноним (250), 08:47, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> C++ Builder
> Кому он нужен?
Аболютный копиум. Ты же только сейчас о нем узнал, не так ли?
C++ Builder нужен многим коммерческим (и даже некоторым опенсорсным) проектам, которым необходим "Delphi, но только чтобы писать на C++". И, как и в случае с Delphi, это дает далеко не только нативный GUI под платформу, но и тьму инетгрированных компонентов для работы с БД, сетью и т.п.
| | |
| |
| |
| |
| |
| |
| |
| 13.330, Аноним (249), 21:53, 31/03/2026 [^] [^^] [^^^] [ответить] | +/– | Впервые слышу такую чушь Ты сам-то когда-нибудь видел промышленный или потребит... большой текст свёрнут, показать | | |
|
|
|
|
|
|
|
|
|
| 4.251, Аноним (250), 08:42, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> у делфи стандарта зато нет
> Это преимущество?
Естественно, если говорить о стандарте и процессер его развития уровня С++! Вам нужна новая фича - берете и выпускаете в следующем релизе компилятора. А не сидите и не ждете, пока там комитетные наймиты корпораций годами чешут свои репы, чтобы в конце концов соизволить отрыгнуть кривое недоразумение.
Буквально это и есть причина, по которой в Delphi и ее стандартной либе были функции (не говоря уж о GUI и прочих компонентах), которых в C++ до сих пор нет.
| | |
| |
| 5.279, Сладкая булочка (?), 14:47, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>> у делфи стандарта зато нет
>> Это преимущество?
> Естественно, если говорить о стандарте и процессер его развития уровня С++! Вам
> нужна новая фича - берете и выпускаете в следующем релизе компилятора.
> А не сидите и не ждете, пока там комитетные наймиты корпораций
> годами чешут свои репы, чтобы в конце концов соизволить отрыгнуть кривое
> недоразумение.
> Буквально это и есть причина, по которой в Delphi и ее стандартной
> либе были функции (не говоря уж о GUI и прочих компонентах),
> которых в C++ до сих пор нет.
gui и прочее в нормальных языках живут отдельно в библиотеках.
| | |
| |
| 6.308, Аноним (249), 20:02, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> gui и прочее в нормальных языках живут отдельно в библиотеках
Чел, иди проспись. В Delphi "GUI и прочее" тоже живет в отдельных библиотеках.
| | |
|
|
|
|
|
| 1.196, Аноним (196), 22:14, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– | |
Как же всё таки хорошо, что начиная с C++11 комитет пришёл в форму и стал выпускать каждые 3 года стандарты с действительно значимыми новшествами. Язык становится выразительнее, при этом, совместимость со старым кодом почти никогда не ломается.
После C++26 не грех и Qt 7 было бы выпустить, без стороннего meta-object-compiler.
| | |
| |
| 2.203, Сладкая булочка (?), 22:46, 30/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Как же всё таки хорошо, что начиная с C++11 комитет пришёл в
> форму и стал выпускать каждые 3 года стандарты с действительно значимыми
> новшествами. Язык становится выразительнее, при этом, совместимость со старым кодом почти
> никогда не ломается.
> После C++26 не грех и Qt 7 было бы выпустить, без стороннего
> meta-object-compiler.
Что не так с moc в текущем виде? Ну работает он в сборке и работает.
| | |
| 2.227, Аноним (227), 00:30, 31/03/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Как же всё таки хорошо, что начиная с C++11 комитет запустил свой сахарный завод на полную мощность!
Пофиксил.
| | |
|
| 1.214, Аноним (216), 23:42, 30/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –10 +/– | |
Когда уже до этих сипиписнутых пepдyнoв дойдёт, что С++ неисправим! Хоть стотыщ новых "плюшек" добавьте, как язык это полное фиаско! Не программа, а куча низкоуровневых сикарашек.
Хочешь писать "для железа" - бери Си. Всё остальное спокойно пишется на C#. Зачем в 21 веке этот бесперспективный С++? Помрут последние "старожилы языка" и всё, ему кранты! Зумеры максимум пестон освоят, профи - C# или Жабу. И куда потом девать это сипиписное легаси??
| | |
| |
| 2.271, Аноним (272), 11:08, 31/03/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
У Си_Шарпа 2 пролблемы.
1. Разработан чтобы писать на Вантузе.
2. Это некомпилируемый язык. Язык работает на виртуальной машине.
| | |
| |
| 3.276, Аноним (-), 12:55, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> 1. Разработан чтобы писать на Вантузе.
А проблема собственно где? Нет поддержки всякого позиксного хлама? Вроде есть.
> 2. Это некомпилируемый язык. Язык работает на виртуальной машине.
Вы давно из криокамеры? C# уже давно в native binary компилится.
| | |
| |
| 4.280, Сладкая булочка (?), 14:50, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
>> 2. Это некомпилируемый язык. Язык работает на виртуальной машине.
> Вы давно из криокамеры? C# уже давно в native binary компилится.
Так компилится, что его создатель Хелсберг взял го по причине проблем с native binary.
| | |
| |
| 5.336, Аноним (216), 22:05, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Хелсберг никого не волнует - есть АОТ и оно специально для канпеляния в нэйтив.
Строго говоря, ничто не мешает написать свой СРАЗУ компилируемый C# под линукс. Есессно, без плюшек интроспекции, но с другой стороны, зато сам язык шикарный! Куча сахарка. :)
Линуксу давно нехватает именно Си-подобного языка, но не С++. Можно и Ди взять - тот вообще крутяк. Но для Ди надо писать кучу либ, а у мелкософта они уже есть.
| | |
|
|
| 3.332, Аноним (216), 21:59, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– | |
1. .NET Core уже давно существует для Линукса, см. репы. VS позволяет писать так же для мakakоси и Ведроида.
2. И да, и нет. Язык действительно канпеляется в байткоды, но потом превращается в процессорные бинари по ходу исполнения. Есть ещё AOT, так что можно смело считать, что у вас есть "бинарные программы". Здесь бояться нечего, Core уже активно использует даже SIMD. https://github.com/dotnet/docs/blob/main/docs/standard/simd.md
Как активно пишущий, я б указал только на одну проблему - пока что с ГУЯми под Линукс какие-то непонятки - вроде как есть MAUI, но под Линукс его долго не было. Да и не пишу я на нём - у меня WPF.
| | |
|
|
| |
| 2.288, анон (?), 16:19, 31/03/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
если под "этими людьми" имеются ввиду программисты c++, то никакого лицемерия нет - современный с++ они тоже ненавидят.
| | |
|
| |
| 2.236, Аноним (133), 02:50, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Есть термин "божественный объект", а тут - то же самое с библиотекой.
| | |
| 2.305, Аноним (305), 19:54, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Без стандартизованных классов для линейной алгебры и массивов a-la numpy хреново.
| | |
|
| 1.243, НовыеРептилоиды (?), 06:53, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Забыли добавить функции по работе с АИ. Нету ни одной арифметической операции для работы с нейронными арифметическими функциями. Устарелло ужже на момент выпуска. Илона маска будет писать нейролинк на яваскриптте
| | |
| |
| 2.256, Аноним (13), 09:09, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Смотрите далее. Квантовые алгоритмы забыли включить. Причем в сам язык.
| | |
|
| 1.259, Аноним (13), 09:13, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> меняющаяся в цикле переменная является константой
это как - меняющаяся константа?
| | |
| |
| 2.273, Аноним (45), 11:37, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Трудности перевода. Объект, над которым выполняются итерации цикла (элемент последовательности, по которой итерируется цикл), является константой для каждой итерации и может участвовать в константных выражениях (constexpr).
| | |
|
| 1.266, Аноним (266), 10:41, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Я так понял плюсы развиваются не чтобы удобнее было программировать, а чтобы валить на собесах тонкостями синтаксиса
| | |
| |
| 2.289, анон (?), 16:22, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
вопросы из разряда ' чему равно sizeof(1)["abcdef"] ' сменяются на ' что выдаст программа @^^#!..[-0-](){--##;[....]::^^} ?'
| | |
|
| 1.287, Аноним (287), 16:19, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Я просто напомню, что при использовании C++ более 20 Hello World компилится секунду, при спользовании C++17 - 0.1 секунду, а при использовании более ранних версий - ещё меньше. Почему бы все фичи либы, которые не требуют именно новой верси языка, не сделать доступной в предыдущих версиях (разумеется без частей, опирающихся на новые фичи языка и новые синтаксисы), так ведь можно сдорово на компиляции сэкономить.
| | |
| |
| 2.306, Аноним (305), 19:55, 31/03/2026 [^] [^^] [^^^] [ответить]
| +/– |
Тем, кто минусует: на "коре дуба" компилится секунду, не на ваших зенах.
| | |
|
| 1.316, Аноним (321), 20:55, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
>Добавлены новые операторы "^^" для получения метаинформации о грамматической конструкции
Фу, блин, ^ - это же вроде managed-указатель из C++/CLI, соответственно ^^ - это managed-указатель на managed-указатель.
| | |
|