40auto then(std::future<T>&& future, Function&& func)
41 -> std::future<
decltype(func(std::move(future)))>
43 return std::async(std::launch::deferred,
44 [](std::future<T>&& future, Function&& func)
47 return std::forward<Function>(func)(std::move(future));
50 std::forward<Function>(func)