avatar
Миша пишет код
@misha_writes_code
08.11.2023 16:26
Миша пишет код Фото: Это хаскель? Это scala? Нет, это C++23. Я опять все проспал, а оказывается тут такое После появившегося в 17 плюсах std::optional теперь в 23 плюсах будет std::expected. И monadic operations для expected. И вот такой код уже очень модно выглядит. auto res = square( 2 ) .and_then( mult_by_two ) .and_then( square ); Ну все, теперь можно говорить, что в плюсах можно писать на монадах? std::expected уже заспавнился в популярных компиляторах, можно компилировать с -std=c++2b. Всякие ссылки: Proposal: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html Cppreference: https://en.cppreference.com/w/cpp/utility/expected Godbolt: https://godbolt.org/z/3a1j6d63a
В 23 плюсах больше не будет поддержки сборщика мусора.

Стопстопстоп что?

Все с детского сада знают, что в C++ нет сборщика мусора. Что же тогда удалят?

Оказывается, в 2008 году предложили добавить некоторые функции для работы с указателями и описали, как должен работать GC. И в 11 стандарте они появились. Но большинство компиляторов так и не стали поддерживать этот функционал. Поэтому теперь за ненадобностью его удаляют. Так что физически в плюсах не было поддержки gc, хоть она и была описана в стандарте.

Но это не значит, что в C++ не используют сборщики мусора. Есть целая куча сторонних имплементаций, которые просто оказались удобнее предложенного в стандарте. Например, в плюсах Unreal Engine используется собственный GC.
Или, например, написанный на C++ движок V8 (на котором работает JS и WebAssembly) тоже использует собственный сборщик мусора.

Поэтому нельзя уверенно сказать, что в плюсах нет GC. В стандарте он был, в имплементации нет. Но библиотеки и виртуальные машины с GC были и есть.
🫡 3
👍 2
429

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram