LeechCraft
0.6.70-15082-g543737046d
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>
18
struct
InstanceFunctor<
QFuture
<T>>
19
{
20
template
<
typename
F>
21
using
FmapResult_t
=
QFuture
<std::decay_t<std::result_of_t<F (T)>>>;
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
}
LC::Util::InstanceFunctor::FmapResult_t
detail::ImplementationType FmapResult_t
The type of the functor after its elements were mapped by the function F.
Definition:
functor.h:68
LC::Util::InstanceFunctor::Apply
static FmapResult_t< F > Apply(const T &functor, const F &function)
Applies the function to the each of the elements inside the functor.
LC::Util
Definition:
icoreproxy.h:33
futures.h
QFuture
Definition:
idownload.h:17
functor.h
src
util
threads
monadicfuture.h
Generated by
1.8.17