c ++ 11 асинхронное продолжение или попытка семантики .then ()

Код ниже основан наХерб Саттерс идеи реализации продолжения типа .then ().

  template
auto then(Fut f, Work w)->std::future
  { return std::async([=] { w(f.get()); }); }

Это будет использоваться какauto next = then(f, [](int r) { go_and_use(r); }); или похожие.

Это хорошая идея, но в ее нынешнем виде работать не будет (фьючерсы только перемещаются и не копируются). Мне действительно нравится эта идея, поскольку она, вероятно, появится в следующих версиях c ++, насколько я могу догадаться (хотя, как .then () или даже ожидаю.)

Перед тем, как сделать фьючерсы общими или похожими, мне интересно, что сообщество по переполнению стека подумало бы об этой реализации, особенно с улучшениями и предложениями (даже общими фьючерсами)?

Спасибо заранее за любые предложения.

(Я знаю, что это исправление до тех пор, пока не будет создан механизм, основанный на стандартах, поскольку это будет стоить потока (возможно))

Ответы на вопрос(2)

Ваш ответ на вопрос