LeechCraft  0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
monadicfuture.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <QFuture>
12 #include <util/sll/functor.h>
13 #include "futures.h"
14 
15 namespace LC::Util
16 {
17  template<typename T>
19  {
20  template<typename F>
22 
23  template<typename F>
24  static FmapResult_t<F> Apply (const QFuture<T>& fut, const F& func)
25  {
26  return Sequence (nullptr, fut) >>
27  [func] (const T& val) { return MakeReadyFuture (func (val)); };
28  }
29  };
30 }
The Functor class is used for types that can be mapped over.
Definition: functor.h:35
static FmapResult_t< F > Apply(const QFuture< T > &fut, const F &func)
Definition: monadicfuture.h:24