Size: a a a

2020 October 19

SK

Stas Koynov in pro.cxx
tino4ka_isaeva
ну, так скажи без иронии, как ты сам лично делаешь для себя, почему тебе не нравится, кроме того что кода больше, а не переиначивай всё на какие-то названия чужих маркетинговых компаний, используя вещи, которые в определённых кругах кем-то культивируются
так я уже все сказал. что простой КА проще, он меньше. одна функция - одно состояние. его легко можно отдать новичку для поддержки. Оверхед весь оверхед это одна строка, ОДНА! ни шаблонов, ни промисов, ни контекстов ничего!..
источник

NV

Nik Vzdornov in pro.cxx
Stas Koynov
Клубника ты походу не уловил иронии, ну ладно оффтоп. Коорутины форева!
Js кстати однопоточный рантайм имеет и async/await так что тоже придётся "напрягаться"))) но это уже оффтоп
источник

t

tino4ka_isaeva in pro.cxx
Alexander Malkov
Да, можно разные методы придумать thread pool подключаться к уже существующим потокам, но..
с этим согласен, но на самом деле насчёт лямбд, еще нужно подумать над самой программой, зачастую эти аллокации мизерные для конечного пользователя
источник

AM

Alexander Malkov in pro.cxx
tino4ka_isaeva
с этим согласен, но на самом деле насчёт лямбд, еще нужно подумать над самой программой, зачастую эти аллокации мизерные для конечного пользователя
Но возможность писать асинхронный код как синхронный - высший бал))
источник

NV

Nik Vzdornov in pro.cxx
Alexander Malkov
Пока единственный плюс, кроме красоты кода - отсутствие динамических аллокаций от лямбд
Как уже говорили выше зато  плюс аллокации корутин стэйта (maybe
источник

m

magras in pro.cxx
Alexander Malkov
Пока единственный плюс, кроме красоты кода - отсутствие динамических аллокаций от лямбд
Если не страшно, что запись в лог может запоздать на время работы коллбека, можно и на одном потоке это все делать. Код выглядел бы как-то так:

int main() {
   CurrentThreadExecutor executor;
   executor.spawn(log_info());
   executor.spawn(write_db("A"));
   executor.run();
}
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Malkov
Проблема в том, что мне в awaitable пришлось все равно создавать поток, чтобы корутину запускать асинхронно
Ты не сможешь запустить операцию асинхронно если у тебя нет асинхронного апи (WriteFile + OVERLAPPED на винде), либо нет другого потока.
источник

ПК

Побитый Кирпич... in pro.cxx
То есть если операция заключается в "посчитать что то" то только через другой поток
источник

ПК

Побитый Кирпич... in pro.cxx
если "отправить по сети асинхронно", то другой поток не нужен - операция итак асинхронная
источник

ИI

И Ivan in pro.cxx
А в boost::intrusive_ptr есть чтото типа make_intrusive, по аналогии с make_shared, make_unique?
источник

VU

Vadim Ushakov in pro.cxx
Есть какой-нибудь легальный способ получить изменяемый итератор std::set? Я точно уверен, что не буду трогать поля, участвующие в сортировке, потому что сравнение там рукописное.
источник

AT

Alexander Tulikov in pro.cxx
const_cast чем не подходит?
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Tulikov
const_cast чем не подходит?
Уб в общем случае
источник

VU

Vadim Ushakov in pro.cxx
Побитый Кирпич
Уб в общем случае
+
источник

ПК

Побитый Кирпич... in pro.cxx
Vadim Ushakov
Есть какой-нибудь легальный способ получить изменяемый итератор std::set? Я точно уверен, что не буду трогать поля, участвующие в сортировке, потому что сравнение там рукописное.
Для этого есть std::map
источник

AT

Alexander Tulikov in pro.cxx
Это не общий случай же.
источник

AS

Anatoly Shirokov in pro.cxx
Vadim Ushakov
Есть какой-нибудь легальный способ получить изменяемый итератор std::set? Я точно уверен, что не буду трогать поля, участвующие в сортировке, потому что сравнение там рукописное.
да, есть, это std::map
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander Tulikov
Это не общий случай же.
Общий в плане реализаций std. В конкретной реализации может быть не уб
источник

VU

Vadim Ushakov in pro.cxx
@top1pogromist  @anatolijs И правда что, спасибо.
источник

T

Ternvein in pro.cxx
Vadim Ushakov
Есть какой-нибудь легальный способ получить изменяемый итератор std::set? Я точно уверен, что не буду трогать поля, участвующие в сортировке, потому что сравнение там рукописное.
Итератор нельзя, можно ноду. https://en.cppreference.com/w/cpp/container/set/extract
Естественно, с соответствующим оверхедом в итоге.
источник