Почему функция destroy() предусмотрена в coroutine_handle в C++ 20?

Выдержка из n4680:

Состояние сопрограммы разрушается, когда управление вытекает из конца сопрограммы или вызывается функция уничтожения (18.11.2.4) объекта типа std:: эксперимент::coroutine_handle

, связанного с этой сопрограммой. В последнем случае объекты с автоматической продолжительностью хранения, находящиеся в области действия в точке приостановки, уничтожаются в обратном порядке построения. Память для состояния сопрограммы освобождается путем вызова функции освобождения не-массива (3.7.4.2). Если для вызываемой сопрограммы вызывается команда destroy, поведение программы не определено.

Мой вопрос:

Теперь, когда состояние сопрограммы будет автоматически уничтожено при выполнении выполнения сопрограммы, почему это явная функция? destroy() предоставляется в coroutine_handle?

0 ответов

Другие вопросы по тегам