Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
marakew opened this issue Sep 12, 2023 · 3 comments
Open

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

marakew opened this issue Sep 12, 2023 · 3 comments

Comments

@marakew
Copy link

marakew commented Sep 12, 2023

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

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

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

@apolukhin
Copy link
Member

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

@marakew
Copy link
Author

marakew commented Mar 24, 2024

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

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

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

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

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

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

@apolukhin
Copy link
Member

Для этого нужнен прототип в компиляторе и побольше пример показкть, где эти методы мешаются

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants