|
Boost : |
Subject: Re: [boost] Final lightweight monad, next gen futures and upcoming AFIO review
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2015-06-29 06:12:13
On 29 Jun 2015 at 8:37, Vicente J. Botet Escriba wrote:
> > Empty => False (future/monad/result/option)
> > Errored/Excepted => Indeterminate (future/monad/result)
> > Value => True (future/monad/result/option)
>
> The meaning of empty in optional/option and future is not the same. For
> the fist is a valid state, for the second is an invalid state.
> In addition asynchronous types have an additional state not-ready, e.g.
> future can be invalid, not-ready, exceptional or valued.
Indeed very true. One of my worries in my design is that you cannot
send an empty state via future<T>, only a T/error/exception. I
console myself that future<void> effectively means sending an empty
state, however in monad<void> empty state is not void state.
That's one of my design tradeoffs. I don't much like it, but it does
make the code much simpler. I am essentially trusting that the
programmer does not do anything too silly.
Niall
-- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk