Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. template<class T>
  2. std::future<std::decay_t<T>> make_ready_future( T&& t ) {
  3. std::promise<std::decay_t<T>> pr;
  4. auto r = pr.get_future();
  5. pr.set_value(std::forward<T>(t));
  6. return r;
  7. }
  8.  
  9. template<class T>
  10. struct promise_pipe {
  11. std::future<T> out;
  12. std::function<void(T)> in;
  13. promise_pipe() {
  14. auto pr = std::make_shared<std::promise<T>>();
  15. out = pr->get_future();
  16. in = [pr](T t)mutable{
  17. if (pr) pr->set_value(std::forward<T>(t));
  18. pr = {};
  19. };
  20. }
  21. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement