Size: a a a

2020 July 28

m

magras in pro.cxx
Ofee
Опять же, это редкая довольно редкая и нетривиальная зачастую ситуация, которая так или иначе требует пристального внимания от программиста
Да, я об этом и говорю: исключения должны использоваться для тех случаев, которые по сути не будут обрабатываться. Залогировали, возможно перезапустили вычисление. Все.

Другое дело, что я бы тоже не отказался от второго стандартного механизма обработки ошибок, где все было бы явно и с сахаром. Кажется, сейчас этим много кто интересуется.
источник

O

Ofee in pro.cxx
magras
Да, я об этом и говорю: исключения должны использоваться для тех случаев, которые по сути не будут обрабатываться. Залогировали, возможно перезапустили вычисление. Все.

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

AS

Anatoly Shirokov in pro.cxx
интересно мнение Страуструпа на счет новых механизмов обработки ошибок: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1947r0.pdf
источник

AP

Antony Polukhin in pro.cxx
Ofee
Раз уж речь об этом зашла, @antoshkka, можно где-то узнать судьбу этого предложения? Я не нашёл какой-то новой информации о нём
Есть очень похожее предложение от Винцента Боте

Вообще с подобными монадическими интерфейсами в C++ следующая ситуация:
1) они в большинстве опираются на классы стандартной библиотеки, которые ещё не приняты
2) из-за 1) их пока не особо рассматривают, отодвигают в конец очереди

Так что бумагу пока не рассматривали
источник

O

Ofee in pro.cxx
Antony Polukhin
Есть очень похожее предложение от Винцента Боте

Вообще с подобными монадическими интерфейсами в C++ следующая ситуация:
1) они в большинстве опираются на классы стандартной библиотеки, которые ещё не приняты
2) из-за 1) их пока не особо рассматривают, отодвигают в конец очереди

Так что бумагу пока не рассматривали
Думаю, что не только можно, но и нужно добавить сначала языковую возможность, как автор верно заметил, это очень похоже на корутины. И корутины тоже приняты без библиотечной поддержки. Я не считаю это катастрофой, в любом случае у пользователя должна оставаться возможность сделать собственную реализацию, независимо от наличия или отсутствия средств в стандартной библиотеке. А уж если у пользователя возможность появится рано или поздно — в чём проблема, если появится рано?

Лично мне вообще ни одна из имплементаций концепции монад для обработки исключений по той или иной причине не понравилась. Но я думаю, что появление такого оператора могло бы подстегнуть кого-то ещё на создание альтернативных решений или продумывание более успешного дизайна, который можно было бы добавить в стандарт значительно позже
источник

AP

Antony Polukhin in pro.cxx
Ofee
Думаю, что не только можно, но и нужно добавить сначала языковую возможность, как автор верно заметил, это очень похоже на корутины. И корутины тоже приняты без библиотечной поддержки. Я не считаю это катастрофой, в любом случае у пользователя должна оставаться возможность сделать собственную реализацию, независимо от наличия или отсутствия средств в стандартной библиотеке. А уж если у пользователя возможность появится рано или поздно — в чём проблема, если появится рано?

Лично мне вообще ни одна из имплементаций концепции монад для обработки исключений по той или иной причине не понравилась. Но я думаю, что появление такого оператора могло бы подстегнуть кого-то ещё на создание альтернативных решений или продумывание более успешного дизайна, который можно было бы добавить в стандарт значительно позже
Есть трюк, позволяющий использовать корутины для монадического интерфейса
expected<float> get_float() noexcept
{
int _int = co_await get_int();
...
}


Так что можно уже сейчас экспериментировать )
источник

O

Ofee in pro.cxx
Antony Polukhin
Есть трюк, позволяющий использовать корутины для монадического интерфейса
expected<float> get_float() noexcept
{
int _int = co_await get_int();
...
}


Так что можно уже сейчас экспериментировать )
Да, я знаю, более того, автор предложения ссылался на такую возможность и неплохо аргументировал, почему такая возможность ужасна)
источник

DS

Dmitry Sokolov in pro.cxx
Dmitry Sokolov
У меня gcc 8.3, из rh devtoolset. Я понимаю что с sv он не будет дёргаться, это ж уже как раз constexpr. При этом godbolt на простых примерах тоже показывает оптимизацию. Но практика показывает что она срабатывает не всегда. Думал может что упустил и кто уже занимался подобным reverse engineering...
Похоже выяснил где собака порылась... Оптимизации внезапно зависят от размеров объектника. Буквально добавляю несколько строк в одну функцию, в другой исчезают оптимизации char_traits::length для литералов. С jumbo builds вообще печаль получается :(
источник

AS

Anatoly Shirokov in pro.cxx
Ofee
Думаю, что не только можно, но и нужно добавить сначала языковую возможность, как автор верно заметил, это очень похоже на корутины. И корутины тоже приняты без библиотечной поддержки. Я не считаю это катастрофой, в любом случае у пользователя должна оставаться возможность сделать собственную реализацию, независимо от наличия или отсутствия средств в стандартной библиотеке. А уж если у пользователя возможность появится рано или поздно — в чём проблема, если появится рано?

Лично мне вообще ни одна из имплементаций концепции монад для обработки исключений по той или иной причине не понравилась. Но я думаю, что появление такого оператора могло бы подстегнуть кого-то ещё на создание альтернативных решений или продумывание более успешного дизайна, который можно было бы добавить в стандарт значительно позже
Корутины в нынешнем виде - ассемблер для написания асинхронных библиотек. Сейчас когда  он есть, есть возможность получить качественную реализацию стандартной библиотеки
источник

K

Kirill in pro.cxx
Anatoly Shirokov
Корутины в нынешнем виде - ассемблер для написания асинхронных библиотек. Сейчас когда  он есть, есть возможность получить качественную реализацию стандартной библиотеки
Очень точное определение
источник

O

Ofee in pro.cxx
Anatoly Shirokov
Корутины в нынешнем виде - ассемблер для написания асинхронных библиотек. Сейчас когда  он есть, есть возможность получить качественную реализацию стандартной библиотеки
Именно по той же причине operator try() без библиотечной поддержки мог бы стать хорошим шагом, он, по сути, мог бы быть тем же самым ассемблером, разве что спектр применения значительно уже, чем у корутин
источник

AS

Alexey Storcheus in pro.cxx
ЕСЛИ КТО-ТО СДЕСЬ СМОЖЕТ СКОМПИЛИТЬ И ЗАПУСТИТЬ headless_example — ВЫ MVP

https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
источник

VS

Vladimir SHCHerba in pro.cxx
Minimal Valuable Product?
источник

HJ

Happy Jupiter in pro.cxx
Vladimir SHCHerba
Minimal Valuable Product?
Тонко
источник

VS

Vladimir SHCHerba in pro.cxx
Нет, я правда не понял.
источник

AS

Anatoly Shirokov in pro.cxx
Vladimir SHCHerba
Нет, я правда не понял.
MVP - most valuable professional
источник

SE

Stanislav Ershov in pro.cxx
Anatoly Shirokov
MVP - most valuable professional
а не person? )
источник

ИИ

Иванов Иванов... in pro.cxx
Alexey Storcheus
ЕСЛИ КТО-ТО СДЕСЬ СМОЖЕТ СКОМПИЛИТЬ И ЗАПУСТИТЬ headless_example — ВЫ MVP

https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
я компилировал и запускал.
источник

ИИ

Иванов Иванов... in pro.cxx
(непонятно зачем потратил уйму времени)
источник

AS

Anatoly Shirokov in pro.cxx
Stanislav Ershov
а не person? )
источник