Kirill
не забываем что ноексепт принимает буль
Kirill
тоесть можно как указать что функция/метод не будет кидать експешн, как можно и явно указать,что будет
Kirill
например деструктору сказать, все ок, ты можешь кидать ексепшн и не умереть
Roman
я бы свернул must() и mustNot() вместе с експектом, чтобы меньше писать
тогда лучше ожидать true и возвращать bool из must / mustNot ASSERT(cpMain.must()) ASSERT(cpAttached.must()) ASSERT(cpFailure.mustNot()) тогда получается что первый ASSERT на cpMain блокирует control flow и только позже получает boolean. mustNot() в таком случае должен вернуть true если checkpoint таймаутил, а must() наоборот, вернуть true если таймаута не было
Крылатый
http://foonathan.net/blog/2017/06/27/lazy-evaluation.html
Deleted Account
http://foonathan.net/blog/2017/06/27/lazy-evaluation.html
картинка как у сборников альфа матрикс
Yury
Подскажите аналог promise из js в c++?
Крылатый
http://en.cppreference.com/w/cpp/thread/promise
Крылатый
Это?
Yury
нет
Yury
нужна однопоточная обертка для вызова колбека
Yury
https://learn.javascript.ru/promise
Yury
вот пример
Arseny
В javascript так future называют
Yury
я пробежался по std::async, promise, future, и как понял это обертки для многопоточного апи.
Yury
мне просто удобно вызов колбека хочется обернуть
Anatoly
Подскажите аналог promise из js в c++?
наверняка что-то должно найтись на гихабе, на коленке это выглядит так std::async(std::launch::async, [](std::function<void()> success, std::function<void()> fail) { try { // async throwable process success(); } catch (...) { fail(); } }, []() { }, []() { });
Yury
Да, мне кажется много решений должно быть. Но решил спросить, вдруг более менее стандартизированное есть.
Arseny
Если просто callback, то это про lambda и std::function видимо.
Yury
httpGet('/article/promise/user.json') .then(JSON.parse)
Yury
Вот пример из js.
Yury
httpGet возвращает промис
Yury
у промиса метод then, куда можно передать колбек
Anatoly
два колбека
Yury
да, но суть не в этом :)
RattenKong 🦧🐀🦍️
http://foonathan.net/blog/2017/06/27/lazy-evaluation.html
макросы с лямбдой, ого
Yury
в таком апи можно строить удобные цепочки асинхронных вызовов
Anatoly
в таком апи можно строить удобные цепочки асинхронных вызовов
более мощным аппаратом обладает следующее поколение RX, посмотри rxcpp должно подойти
Yury
Посмотрю, спасибо.
Yury
да, это просто обертка над колбеком, все верно
Anatoly
вполне может быть
Yury
просто удобная, читабельная и т.д.
Крылатый
httpGet('/article/promise/user.json') .then(JSON.parse)
Это есть в бубсах и (ЕМНИП) в C++17.
Yury
У меня с++ 11
Yury
cocos2d-x
Arseny
Не, then в std::future только планируется
Крылатый
Boobs твой выбор!
Arseny
Boobs твой выбор!
Это что такое?
Крылатый
Boost
Anatoly
Boost
а что там в бусте аналог JS Promise?
Крылатый
а что там в бусте аналог JS Promise?
Если имеется ввиду continuation, то Boost.Future?
Крылатый
auto future = boost::async([](){return 42;}).then([](boost::future<int> future){return what_does_it_actually_mean(future.get());};
Anatoly
да, оно
Anatoly
а что там в случае исключения?
Anatoly
то есть future.get() выбросит исключение, если в процессе работы асинхронной функции было выброшено исключение
Anatoly
ok
Serge
Почему по С++ мало групп в телеграмме?
Dr. Friedrich
Мало?
Serge
Мало
Andrey
Мало
попроси @AlexFails он еще заведет )
Dr. Friedrich
Куда уж больше-то? pro.cxx, supapro, ultramegapro...
Serge
Нашел только эту и ещё одну мертвую с января
Andrey
Куда уж больше-то? pro.cxx, supapro, ultramegapro...
ну, видишь, человеку - мало )
Serge
Судя по названию супапро и ультрамега не про С++
Ruslan
а зачем тебе много?
Ruslan
лучше пускай одна где люди есть будет
Serge
Много не надо, но пару тройку не помешало бы
Yury
https://github.com/xhawk18/promise-cpp
Yury
такой вариант для промисов аля js нашел
Dr. Friedrich
Судя по названию супапро и ультрамега не про С++
Про C++. Супапро для C++-новичков, ультрамегапро хз для кого (не сижу там).
Aragaer
... переписываюсь с саппортом pvs студии. Они тоже удивлены, что на нашем проекте их тулза сбоит.
Aragaer
строго по гайду это ровно две команды - трейсом получить файл strace_out, потом анализатором увидеть там что компилируется некий сишник
Aragaer
первый этап проходит, трейс ровно тот, какой ожидается
Aragaer
а второй этап не проходит - анализатор не понимает, что записанная в трейсе команда на компиляцию это команда на компиляцию
Крылатый
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0707r0.pdf
Крылатый
Не читаю лор(
Alexey
Навряд ли в с++20
🐙 Antony
У меня такое чувство, что Герб - очень знатный троль. Он обычно озвучивает какую-то крутую новую идею, пиарит её и... ждёт пока её сделают в C#/Rust/*. После этого обкатанная идея переносится в С++
Крылатый
Стратегия!
ttldtor
Мне понравилось. Я бы даже C₂++ замутил для таких целей, чтобы обкатывать.
Berkus
лучше C²++
ttldtor
ну или так
Dr. Friedrich
D++
ttldtor
не, дишечка и так уже как полигон
Dmitry
ы
Andrei
#flame