22 Feb
2019
22 Feb
'19
10:47 p.m.
On 2/22/19 9:48 AM, Peter Dimov via Boost wrote:
I'd like to request a formal Boost review for the Variant2 library, https://github.com/pdimov/variant2. Variant2 contains an implementation of a variant<T...> type that is an almost conforming std::variant, except it doesn't require C++17 and supports C++11 and above.
It's also never valueless and has a few other extensions.
I see optional, expected, outcome and .. (monad?) as just special cases of variant. for example template<typename T> using optional = variant<false_type, T>; Why is it necessary to have all these type implemented? Can't there be some sort of "base" type which can be used to implement all these others? Robert Ramey