Идея отложенного будущего (достигнутая только путем вызова std::async
с std::launch::deferred
) заключается в том, что обратный вызов вызывается только тогда, когда кто-то пытается подождать или вытащить футуристическое значение или исключение будущего. к тому времени обратный вызов не выполняется.
Что произойдет, если я присоединяю продолжение к отложенному будущему с помощью std::future::then
? отложенное будущее теряется (then
делает недействительным будущее), и вместо этого возвращается новое будущее.
В этом случае, согласно стандарту, что должно произойти? является ли новое будущее также отложенным будущим? это будет просто тупик? этот вопрос не рассматривается в последней документации.