Hi Michael,
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?
Regards,
&rzej;
niedz., 24 mar 2019 o 22:12 Michael Caisse via Boost
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 devote.
Variant2 is a never-valueless C++11/14/17 implementation of std::variant.
From the README:
The class boost::variant2::variant
is an almost conforming implementation of std::variant with the following differences: * A converting constructor from, e.g. variant
to variant is provided as an extension; * The reverse operation, going from variant
to variant is provided as the member function subset . (This operation can throw if the current state of the variant cannot be represented.) * variant
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: https://github.com/pdimov/variant2
and the documentation here: https://pdimov.github.io/variant2/doc/html/variant2.html
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
-- Michael Caisse Ciere Consulting ciere.com
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost