Информация об изменениях

Сообщение Re[4]: Получить сигнатуру из ламбды от 19.08.2020 13:36

Изменено 19.08.2020 13:38 rg45

Re[4]: Получить сигнатуру из ламбды
Здравствуйте, Went, Вы писали:

W>Запустить "как есть" его не получится (call_traits и call_elements), но, может, будут какие-то замечания просто при взгляде на него?


Я бы предложил сделать такое упрощение
    add_to_queue([fn_ = std::move(fn), args_tuple](){stdext::call_elements(fn_, args_tuple);});} // call_elements = std::apply


И второе, несколько смущает такая одноразовость объектов defer_proxy. Повторное использование чревато UB. Я бы подумал, как можно обезопасить код.
Re[4]: Получить сигнатуру из ламбды
Здравствуйте, Went, Вы писали:

W>Запустить "как есть" его не получится (call_traits и call_elements), но, может, будут какие-то замечания просто при взгляде на него?


Я бы предложил сделать такое упрощение
    add_to_queue([fn_ = std::move(fn), args_tuple](){stdext::call_elements(fn_, args_tuple);});} // call_elements = std::apply

А то выходит, что ты сначала делаешь move и тут же копирование.

И второе, несколько смущает такая одноразовость объектов defer_proxy. Повторное использование чревато UB. Я бы подумал, как можно обезопасить код.