Сообщение Re[4]: Получить сигнатуру из ламбды от 19.08.2020 13:36
Изменено 19.08.2020 13:38 rg45
Re[4]: Получить сигнатуру из ламбды
Здравствуйте, Went, Вы писали:
W>Запустить "как есть" его не получится (call_traits и call_elements), но, может, будут какие-то замечания просто при взгляде на него?
Я бы предложил сделать такое упрощение
И второе, несколько смущает такая одноразовость объектов defer_proxy. Повторное использование чревато UB. Я бы подумал, как можно обезопасить код.
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), но, может, будут какие-то замечания просто при взгляде на него?
Я бы предложил сделать такое упрощение
А то выходит, что ты сначала делаешь move и тут же копирование.
И второе, несколько смущает такая одноразовость объектов defer_proxy. Повторное использование чревато UB. Я бы подумал, как можно обезопасить код.
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. Я бы подумал, как можно обезопасить код.