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