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

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

Состояние сопрограммы разрушается, когда контроль стекает с конца
сопрограмма или функция-член уничтожения (18.11.2.4) объекта
тип std :: экспериментальный :: coroutine_handle<п> связано с этим
сопрограмма вызывается. В последнем случае объекты с автоматическим
продолжительность хранения, находящаяся в области действия в точке приостановки, уничтожается
в обратном порядке конструкции. Хранение для
состояние сопрограммы освобождается путем вызова освобождения не-массива
функция (3.7.4.2). Если уничтожение вызвано сопрограммой, которая не
приостановлено, программа имеет неопределенное поведение.

Мой вопрос:

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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]