Почему функция destroy() предусмотрена в coroutine_handle в C++ 20?
Выдержка из n4680:
Состояние сопрограммы разрушается, когда управление вытекает из конца сопрограммы или вызывается функция уничтожения (18.11.2.4) объекта типа std:: эксперимент::coroutine_handle
, связанного с этой сопрограммой. В последнем случае объекты с автоматической продолжительностью хранения, находящиеся в области действия в точке приостановки, уничтожаются в обратном порядке построения. Память для состояния сопрограммы освобождается путем вызова функции освобождения не-массива (3.7.4.2). Если для вызываемой сопрограммы вызывается команда destroy, поведение программы не определено.
Мой вопрос:
Теперь, когда состояние сопрограммы будет автоматически уничтожено при выполнении выполнения сопрограммы, почему это явная функция? destroy()
предоставляется в coroutine_handle
?