Size: a a a

2020 October 21

D

Dmitriy in pro.cxx
В коде, где неуспех - нормальная и регулярная ситуация, это будет куда шустрее исключений
источник

d

disba1ancer in pro.cxx
Dmitriy
В коде, где неуспех - нормальная и регулярная ситуация, это будет куда шустрее исключений
исключения же вроде как zero cost в большинстве случаев, нет?
источник

A

Andrew in pro.cxx
По замерам, когда я их делал последний раз, вообще нет.
источник

d

disba1ancer in pro.cxx
но лично моё мнение что исключения надо бросать только в случае фатальных ошибок, когда кроме завершения программы вариантов нет
источник

DS

David Sorokin in pro.cxx
как раз забавный казус, исключения не совсем zero cost abstraction
источник

DS

David Sorokin in pro.cxx
например, при вызове перемещающего конструктора
источник

d

disba1ancer in pro.cxx
David Sorokin
как раз забавный казус, исключения не совсем zero cost abstraction
при чём тут abstraction?
источник

DS

David Sorokin in pro.cxx
ну, ладно, просто не zero cost :)
источник

DS

David Sorokin in pro.cxx
а еще бывает, что припишешь noexcept, а на старых компилятор падает скорость... это в typеdef при определении типа функции
источник

PK

Pavel Kazakov in pro.cxx
disba1ancer
исключения же вроде как zero cost в большинстве случаев, нет?
Если они не стреляют, то почти нет оверхеда
источник

PK

Pavel Kazakov in pro.cxx
Только это zero cost abstraction, а не совсем бесплатные ништяки :)
источник

IL

Ignat Loskutov in pro.cxx
https://www.youtube.com/watch?v=ItemByR4PRg неплохой доклад на тему. Вкратце — усложняется control flow и это вредит оптимизатору.
источник

m

magras in pro.cxx
Ignat Loskutov
https://www.youtube.com/watch?v=ItemByR4PRg неплохой доклад на тему. Вкратце — усложняется control flow и это вредит оптимизатору.
Да, но коды возврата (или std::expected и аналоги) создадут почти такое же ветвление. По сути этот доклад сравнивает обработку ошибок через исключения и отсутствие какой-либо обработки ошибок.
источник

d

disba1ancer in pro.cxx
Pavel Kazakov
Только это zero cost abstraction, а не совсем бесплатные ништяки :)
где ты тут абстракцию увидел?
источник

PK

Pavel Kazakov in pro.cxx
disba1ancer
где ты тут абстракцию увидел?
А чем ещё являются эксепшны? Это абстракция для обработки нештатных ситуаций
источник

d

disba1ancer in pro.cxx
Pavel Kazakov
А чем ещё являются эксепшны? Это абстракция для обработки нештатных ситуаций
ну хз
источник

AK

Andrei K in pro.cxx
Переслано от Andrei K
И тут щас кто-нибудь такой вкидывает пропозал Саттера про зеро-оверхед детерминистик эксепшны.
источник

AK

Andrei K in pro.cxx
Переслано от Andrei K
источник

O

Ofee in pro.cxx
Andrew
А кто-то может пояснить, почему это так и не приняли в 20? http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0798r4.html
Джва^WШесть лет уже как пора бы. 😿
Неожиданно, но я нашёл ответ на этот вопрос в p1654r1:

Future ABI breaks
When we tried to add monadic optionals, we were concerned that we cannot pass overload sets to callables. This (passing overload sets to callables) would require a future planned ABI breakage.

(Not an ABI break taken, but one that should have been (or should be) taken)

Полагаю, этот текст отсылает нас к p1170r0
источник

d

disba1ancer in pro.cxx
а что там в ABI собираются ломать?
источник