LINUX.ORG.RU

С++23 уже почти здесь

 


3

4

по мотивам прошлой темы: Вести с полей стандартизации C++: C++20 design is complete (Kona, 2019-02)

Появился пост на reddit в котором можно увидеть какие ещё предложения войдут в С++23, возможно войдут в С++23, и не войдут: https://old.reddit.com/r/cpp/comments/qug17i/c23_near_the_finish_line/

Также можно увидеть что уже вошло в С++23 https://en.cppreference.com/w/cpp/compiler_support/23

Жалко, что

P1673 (P1385)	A free function linear algebra interface based on the BLAS	[9] NO
P1385 (P1673)	A proposal to add linear algebra support to the C++ standard library   [9] NO

Но тем не менее получилось не мало.

Кстати, если у вас есть негативный опыт с ranges_v3 и Boost.Range, то std::ranges гораздо более оптимизирован к скорости компиляции:

https://www.reddit.com/r/cpp/comments/qug17i/c23_near_the_finish_line/hkw97si/

★★★★★

Последнее исправление: fsb4000 (всего исправлений: 2)
Ответ на: комментарий от Siborgium

да да такие которые кричат «не нужен» обычно создают лапшу из говнокода и вариант-визиторов

с таким успехом можно сказать что и лямбды не нужны

anonymous
()
Ответ на: комментарий от LamerOk

Школотрон здесь ты, путаешь «упорядоченную последовательность» с «последовательностью значений, идущих или следующих в определенном порядке (возрастающем, убывающем, …)».

Так когда с себя снимешь звезду, «борец с школотронами».

anonymous
()
Ответ на: комментарий от anonymous

папрашу не путать «неупорядоченную последовательность» с «неупорядоченной последовательностью чисел» например.

то есть говорить о «неупорядоченной последовательности» еще имеет смысл, если на элементах существует порядок сам по себе(вне этой последовательности), как на натуральных числах, например.

тогда правильный термин скорее - «последовательность чисел, взятых в произвольном порядке». а «неупорядоченная последовательность» - это вульгаризм.

alysnix ★★★
()
Ответ на: комментарий от anonymous

афтар бредит.

последовательность это то, что имеет операции first() и next(). prev() - не только не обязательна, но даже и нежелательна. поскольку это уже более сильная спецификация.

alysnix ★★★
()
Ответ на: комментарий от alysnix

ты может расист?

А какой у чукчи RGB или CMYK кожи? Мне надо свериться с расистской палитрой.

anonymous
()
Ответ на: комментарий от anonymous

с таким успехом можно сказать что и лямбды не нужны

Нет, нельзя. Вплоть до С++20 лямбды умели делать то, чего нельзя было достичь другими языковыми средствами.

да да такие которые кричат «не нужен» обычно создают лапшу из говнокода и вариант-визиторов

Аргументов, я так понимаю, не будет?

Siborgium ★★★★★
()
Ответ на: комментарий от alysnix

Свет включать не пробовал? Точно чукча.

anonymous
()
Ответ на: комментарий от anonymous

и поймут что сокет для начала не асинхронный

Сокет, для начала, асинхронный. Если рассматривать исключительно berkeley sockets API, то сокет может быть как синхронным, так и асинхронным.

Siborgium ★★★★★
()
Ответ на: комментарий от Siborgium

лапша элегантный простой код ?

браво,слив засчитан, марш с профессии

anonymous
()
Ответ на: комментарий от Siborgium

сокет не привязанная к экзекутору сущность

проблема всего лишь в дерьмовом asio который пытаются втянуть в стандарт

и который досих пор не умеет work stealing, а без него он нахрен не нужен ни в продакшинах ни тем более в стандарте

марш SOLID изучать, школота

anonymous
()
Ответ на: комментарий от anonymous

если они друг друга взаимо заменяют

Взаимозаменяют исключительно в рамках традиционного сравнения. А отличие очень простое – strong_ordering гарантирует f(a) == f(b), а weak_ordering – нет.

Siborgium ★★★★★
()
Ответ на: комментарий от eao197

Из этого я могу сделать такой вывод: претензия не столько к самому намерению добавить в C++ паттерн-матчинг, сколько к тому, в каком именно виде это предлагается сделать.

Не совсем так. Я строго против этой попытки протащить паттерн-матчинг в стандарт. Даже без всех ее минусов я все еще не считаю паттерн-матчинг стоящим затрат на внедрение.

Так-то паттерн-матчинг в современном C++ (с учетом современных тенденций в программировании) был бы более чем полезен.

Это спорный момент. Я немало времени писал код на Rust и других языках с поддержкой паттерн-матчинга, и я ни капли страдаю от его отсутствия в С++. Конечно, это мой субъективный опыт, но все же.

Siborgium ★★★★★
()
Ответ на: комментарий от LamerOk

ВНЕЗАПНО, она предназначена именно для того, чтобы представить содержимое контейнера как некую последовательность, абстрагировано от конкретной реализации контейнера.

Ничто не мешает сделать reverse_iterator для односвязного списка, но нужен ли такой reverse_iterator?

Siborgium ★★★★★
()

Ой, не думаю, что линейная алгебра в стандартной библиотеке – хорошая затея. Тащить что-то уровня Eigen – слишком жирно, а что-то проще и нафиг не надо, только для студенческих лабораторных.

Waterlaz ★★★★★
()
Ответ на: комментарий от Waterlaz

У тех кто это предложил, есть такие основания:

The C++ Standard Library includes many «mathematical special functions» ([sf.cmath]), like incomplete elliptic integrals, Bessel functions, and other polynomials and functions named after various mathematicians. Any of them comes with its own theory and set of applications for which robust and accurate implementations are indispensible. We think that linear algebra operations are at least as broadly useful, and in many cases significantly more so.

https://en.cppreference.com/w/cpp/numeric/special_functions

fsb4000 ★★★★★
() автор топика

а есть какой-то ресурс, который бы кратко и по делу прошелся по фичам новых плюсов, ато я как-то выпал из жизни после с++ 14. спасибо заранее!

Keltir
()
Ответ на: комментарий от Siborgium

Совершенно верно, но почему мы решили, что unordered_map должен иметь интерфейс именно односвязного списка, а не, скажем, двусвязного? Особенно, если учесть, что главным критерием «смысла» является «разумное» время доступа?

LamerOk ★★★★★
()
Ответ на: комментарий от fsb4000

То есть понимают, что С++, Rust и Zig гораздо более удобные, чем C.

Писать код на крестах возможно удобно, а вот читать и понимать чужой код ой как непросто.

Обычный Си простой как пять копеек и код проще читается. Как по мне.

anonymous
()
Ответ на: комментарий от Siborgium

Я бы и прямую итерацию запретил, чтобы не гуляли по нулям.

anonymous
()
Ответ на: комментарий от fsb4000

Да, вот прямо таки вчера с удивлением узнал, что в cmath уже с c++17 есть модифицированные функции Бесселя. Мягко говоря неожиданно было :)

Waterlaz ★★★★★
()
Ответ на: комментарий от Siborgium

Реализации std::unordered_map на 95%+ являются клонами std::map. Если std::map в состоянии предоставить std::reverse_iterator, то и std::unordered_map может.

LamerOk ★★★★★
()
Ответ на: комментарий от Waterlaz

есть модифицированные функции Бесселя.

и мир заиграл новыми красками?

alysnix ★★★
()
Ответ на: комментарий от LamerOk

Реализации std::unordered_map на 95%+ являются клонами std::map.

Нет.

std::map – RB-Tree. std::unordered_map – список bucket’ов и массив для хранения указателей на некоторые bucket’ы из списка.

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 2)
Ответ на: комментарий от LamerOk

Реализации std::unordered_map на 95%+ являются клонами std::map

«Борец с школотронами» совсем не палится.

anonymous
()
Ответ на: комментарий от Siborgium

Потому что в реализациях std::unordered_map используется именно односвязный список из bucket’ов.

Вот с этого места поподробнее можно, пожалуйста?

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

Выше ссылка на реализацию. Также рекомендую ознакомиться с видео, по таймингу, указанному в ссылке, достаточно наглядно разбирается идея в основе std::unordered_map.

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 1)
Ответ на: комментарий от bugfixer

какая разница, как реализован тот или иной их контейнер внутри??? понятно что не самым худшим, но и не самым лучшим образом.

alysnix ★★★
()
Ответ на: комментарий от alysnix

какая разница, как реализован тот или иной их контейнер внутри???

Списка «bucket’ов» там не может быть по определению, ни односвязного, ни двусвязного, никакого. У господина @Siborgium терминология немножко неправильная.

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer
Ответ на: комментарий от bugfixer

Это не важно. Если человек не знает как устроена хеш-таблица, эти «умные» слова, как их не расположи в предложении, ничего не скажут.

anonymous
()
Ответ на: комментарий от wandrien

узнаешь всю такую правду

Что такое «правда» для народа? То что сказал авторитет с 5 звездами на погонах, или то что сказал неизвестный без отличительных отметок?

anonymous
()

Господи какое же уродство этот ваш C++

reprimand ★★★★★
()
Ответ на: комментарий от anonymous

Обычный Си простой как пять копеек и код проще читается. Как по мне.

Далеко не всегда, и макросы накрутят, и псевдо RAII и свое управление памятью, и даже код где много работы со строками часто страшен, да и тупо объем кода на си всегда больше чем на более выразительных языках.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.