You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В идеальном мире return_value/void и final_suspend это одна функция.
На текущий момент времени этого уже сделать нельзя, к тому же возможно имеются сложности в реализации этого на уровне компилятора (из-за эксепшенов).
Поэтому предлагается позволить писать:
template <typename T>
autofinal_suspend();
А компилятор вызовет final_suspend с типом параметра вызванного return_value.
Тогда в final_suspend мы можем понять, какая из перегрузок return_value была выбрана.
Я столкнулся с тем, что хочу возвращать разные типы в final_suspend.
Для того чтобы реализовать "future unwrapping", иначе говоря вернуть асинхронной задачу из асинхронной задачи без ожидания (пусть и неблокирующего)
Понятно что это не что-то критичное, но почему нет?
К тому же я думаю со временем примеров станет больше.
По сути сюда подходит любое поведение, которое отличается в зависимости от возвращаемого типа.
Например возможны оптимизации на не хранение того что у нас есть отмена.
Или запуск ленивой задачи при возврате из асинхронной.
The text was updated successfully, but these errors were encountered:
В идеальном мире return_value/void и final_suspend это одна функция.
На текущий момент времени этого уже сделать нельзя, к тому же возможно имеются сложности в реализации этого на уровне компилятора (из-за эксепшенов).
Поэтому предлагается позволить писать:
А компилятор вызовет final_suspend с типом параметра вызванного return_value.
Тогда в final_suspend мы можем понять, какая из перегрузок return_value была выбрана.
YACLib/YACLib#189
Я столкнулся с тем, что хочу возвращать разные типы в final_suspend.
Для того чтобы реализовать "future unwrapping", иначе говоря вернуть асинхронной задачу из асинхронной задачи без ожидания (пусть и неблокирующего)
Понятно что это не что-то критичное, но почему нет?
К тому же я думаю со временем примеров станет больше.
По сути сюда подходит любое поведение, которое отличается в зависимости от возвращаемого типа.
Например возможны оптимизации на не хранение того что у нас есть отмена.
Или запуск ленивой задачи при возврате из асинхронной.
The text was updated successfully, but these errors were encountered: