Subject: Re: [boost] [review][variant2] Variant2 Review Starts April 1
From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2019-03-25 08:31:25
Thanks for the announcement ahead of time. I have found a ten-day period
always to be too short for doing a review, so I appreciate any opportunity
to start earlier.
My question to you and peter is what exactly are we going to review. The
referenced GitHub repository has at least two branches: master and develop.
In case they differ, which is the one we are supposed to be reviewing.
In the same vein, is the linked documentation exactly what we are going to
review? Documentation is also subject to the review process. Peter
mentioned he is going to change the docs so that they reflect how the
never-valueless guarantee is implemented. Is that change going to be
reflected in the documentation version that is going to be reviewed?
niedz., 24 mar 2019 o 22:12 Michael Caisse via Boost <boost_at_[hidden]>
> The Boost formal review of Peter Dimov's Variant2 library will take
> place April 1 - 10, 2019.
> Please consider participating in this review. The success of Boost is
> partially a result of the quality review process which is conducted by
> the community. You are part of the Boost community. I will be grateful
> to receive a review based on whatever level of effort or time you can
> Variant2 is a never-valueless C++11/14/17 implementation of std::variant.
> From the README:
> The class boost::variant2::variant<T...> is an almost conforming
> implementation of std::variant with the following differences:
> * A converting constructor from, e.g. variant<int, float> to
> variant<float, double, int> is provided as an extension;
> * The reverse operation, going from variant<float, double, int> to
> variant<int, float> is provided as the member function
> subset<U...>. (This operation can throw if the current state of the
> variant cannot be represented.)
> * variant<T...> is not trivial when all contained types are trivial.
> To avoid going into a valueless-by-exception state, this
> implementation falls back to using double storage unless
> * one of the alternatives is the type monostate,
> * one of the alternatives has a nonthrowing default constructor, or
> * all the contained types are nothrow move constructible.
> If the first two bullets don't hold, but the third does, the variant
> uses single storage, but emplace constructs a temporary and moves it
> into place if the construction of the object can throw. In case this
> is undesirable, one can force emplace into always constructing in-
> place by adding monostate as one of the alternatives.
> You can find the source code here:
> and the documentation here:
> Please take an early look at the library and ask questions now. Peter
> Dimov is very active on the Cpplang Slack #boost channel; however,
> please consider using the Boost Dev or User Mail Lists so that the
> entire community might benefit from your conversation.
> Note: The repository contains an expected implementation also; however,
> that is not being considered in this review.
> Thank you for your participation!
> Michael Caisse
> Ciere Consulting
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk