cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

оптимизация coroutine initial/final #578

Open marakew opened 9 months ago

marakew commented 9 months ago

а не хотят ли в много уважаемом комитете сделать подарок к С++26

и сделать initial_suspend() и final_suspend() опциональными

честно говоря утомляет их постоянно писать когда их нет смысла использовать

apolukhin commented 3 months ago

Поведение по умолчанию будет в как минимум в половине случаев не подходить пользователям: многие ожидают std::suspend_always, другие ожидают std::suspend_never, третьим вообще нужно третье поведение

marakew commented 3 months ago

расширю смою глубокую мысль

никаких initial/final в существующих корутинах всех возможных языков не существует их придумал гор нишанов чем усложнил понятие корутина для С++ и для тех кто их использует

из множества существующих кейсов никаких initial/final не нужны вообще более того, такие состояние фрейма корутины не нужны, они только добавляют избыточности в генерируемый код

так вот хотелось бы подарок к С++26 это возможность их полностью убирать т.е. эти состояние initial/final и сделать их опциональными т.е. если пользователь их не объявляет то они не используется и не создаются компилером

а если пользователю нужны эти состояние пусть объявляет эти методы и вперед

как их уважаемый комитет уберет оставляю на волю комитета даже объявлением неким "= delete;" на этих методах подойдет на тот случае если там возникнут какие то контрадикшин в стандарте с многобуквенными формулировками