Size: a a a

2020 July 30

DP

Denis Paukaev in pro.cxx
/dev/urandon ¯\_(ツ)_/¯
Мешает для gcc 7.4.0, например, попробую подобрать ключи для минимального примера
А на транке?
источник

/dev/urandon ¯\_(ツ)_... in pro.cxx
Denis Paukaev
А на транке?
это оказалось проблемой для франкенштейна из clang 7.1 и либ от gcc 7.4
источник

P

PRoSToC0der in pro.cxx
Александр Караев
https://habr.com/ru/post/513058/

Кто-то из местных написал? И примеры схожие.. На память пингую тех, кого это интересовало: @qToxa_man @Endill @webreh
как же сложно перевести expression statement на русский, чтобы было понятно что это за зверь
источник

MS

ML. SURGEON in pro.cxx
PRoSToC0der
как же сложно перевести expression statement на русский, чтобы было понятно что это за зверь
Часть выражения?
источник

AS

Anatoly Shirokov in pro.cxx
PRoSToC0der
как же сложно перевести expression statement на русский, чтобы было понятно что это за зверь
Выражение
источник

AS

Anatoly Shirokov in pro.cxx
ML. SURGEON
Часть выражения?
Откуда там "часть"?
источник

MS

ML. SURGEON in pro.cxx
expression состоит из одного или нескольких statement обычно
источник

MS

ML. SURGEON in pro.cxx
Если говорить языком грамматик
источник

P

PRoSToC0der in pro.cxx
ML. SURGEON
Часть выражения?
expression с ; (причём может быть просто ;, без выражения)

statement обычно переводят как инструкция (в контексте C++), так что expression-statement по-русски будет что-то вроде выражение-инструкция или инструкция-выражение
источник

AS

Anatoly Shirokov in pro.cxx
PRoSToC0der
expression с ; (причём может быть просто ;, без выражения)

statement обычно переводят как инструкция (в контексте C++), так что expression-statement по-русски будет что-то вроде выражение-инструкция или инструкция-выражение
expression statement переводится как выражение
источник

VS

Vlad Serebrennikov in pro.cxx
Anatoly Shirokov
expression statement переводится как выражение
expression тоже?
источник

AS

Anatoly Shirokov in pro.cxx
Vlad Serebrennikov
expression тоже?
Да
источник

VS

Vlad Serebrennikov in pro.cxx
дивный мир русской терминологии
источник

AE

Andrew Evseev in pro.cxx
Peace in the world - миру мир
источник
2020 July 31

O

Ofee in pro.cxx
magras
> Или более сложный пример – корутины, по сути, тоже монады, просто другая их форма, предназначенная для другой цели

@oficsu, а я правильно понял, что речь на самом деле шла об awaitable, а не самих корутинах?
Я совершенно не уверен, где следует провести эту границу, мне для этого, кажется, всё ещё не хватает понемногу понимания ФП и устройства корутин в C++, но склоняюсь к тому, что awaitable — лишь одна из составляющих корутин

Могу в качестве примера привести вот этот репозиторий, где в качестве монады выступает expected<>, являющийся на самом деле специфической корутиной, здесь код на C++ очень сильно похож на do-нотацию из Haskell

Так что, наверное, правильный ответ — сами корутины, но я всё ещё не уверен наверняка. Наверное, правильнее сказать, что в C++ не все корутины — монады и не все монады — корутины, но, тем не менее, это крайне похожие абстракции
источник

m

magras in pro.cxx
Ofee
Я совершенно не уверен, где следует провести эту границу, мне для этого, кажется, всё ещё не хватает понемногу понимания ФП и устройства корутин в C++, но склоняюсь к тому, что awaitable — лишь одна из составляющих корутин

Могу в качестве примера привести вот этот репозиторий, где в качестве монады выступает expected<>, являющийся на самом деле специфической корутиной, здесь код на C++ очень сильно похож на do-нотацию из Haskell

Так что, наверное, правильный ответ — сами корутины, но я всё ещё не уверен наверняка. Наверное, правильнее сказать, что в C++ не все корутины — монады и не все монады — корутины, но, тем не менее, это крайне похожие абстракции
Возможно мы по разному используем теримин корутина. В стандарте она определяется как функция содержащая co_*. Определения awaitable в стандарте вроде нет, но я подразумевал под этим expression на котором можно вызвать co_await. При этом можно сделать даже так, чтобы int был awaitable (код co_await 42; будет собираться и работать). Соответственно корутина реализующая future может быть одновременно и корутиной и awaitable. Но, например, для generator'а, который тоже является корутиной, я бы не стал реализовывать поддержку co_await. Поэтому я бы все же разделял эти понятия.
источник

m

magras in pro.cxx
На сколько я вижу в репе для expected реализуют promise_type, что позволяет превратить функции возвращающие expected в корутины. И одновременно реализуют поддержку await на expected через await_transform.
источник

O

Ofee in pro.cxx
magras
Возможно мы по разному используем теримин корутина. В стандарте она определяется как функция содержащая co_*. Определения awaitable в стандарте вроде нет, но я подразумевал под этим expression на котором можно вызвать co_await. При этом можно сделать даже так, чтобы int был awaitable (код co_await 42; будет собираться и работать). Соответственно корутина реализующая future может быть одновременно и корутиной и awaitable. Но, например, для generator'а, который тоже является корутиной, я бы не стал реализовывать поддержку co_await. Поэтому я бы все же разделял эти понятия.
Я действительно ошибся, имея ввиду под корутиной promise, так что, согласен с тем, что монадой является awaitable, правда не уверен, можем ли мы отнести к монадам и сам promise, или нет
источник

A

Alex in pro.cxx
Есть у меня такой шаблон для compile-time итерирования
template <int First, int Last, typename Functor>
constexpr void constexpr_for([[maybe_unused]] Functor&& f) noexcept
{
 if constexpr (First < Last)
 {
    f(value_as_type<First>{});
    constexpr_for<First + 1, Last, Functor>(std::forward<Functor>(f));
 }
}

Когда-то здесь обсуждали, что это эффективнее реализуется на fold expression, но я не видел реализации, и сейчас тоже не могу её найти. Не подскажете?
источник

m

magras in pro.cxx
Вчера на афтерпарти Михаил Воронов автор доклада "Jemalloc и ptmalloc2 с точки зрения разработчика" показал интересную оптимизацию в коде jemalloc.

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