|
Boost : |
Subject: Re: [boost] [outcome] Ternary logic -- need an example
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2017-05-19 20:41:18
Le 18/05/2017 à 16:50, Peter Dimov via Boost a écrit :
> Niall Douglas wrote:
>> I did consider returning optionals which might be empty instead of
>> throwing an exception.
>
> That's not what I was saying. I was saying that for
> result<optional<T>>, if you return by reference, you have to store an
> optional<T> object inside your result. But if you return by value, you
> don't have to store an optional and you can reuse your existing tag
> instead of adding the extra bool flag. That is, use variant<T, none,
> error_code> instead of variant<optional<T>, error_code>.
>
>> > Also applies to other possible combinations such as
>> expected<expected<T, > E1>, E2>, ...
>
> Similarly, expected<expected<T, E1>, E2> can use a single variant<T,
> E1, E2> for storage, if it can return by value. Return by reference
> requires it to have an actual expected<T, E1> object to which to bind
> the returned reference.
Do you believe that these function should return by value in the general
case or just for the nested expected?
Best,
Vicente
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk