On 13/04/2019 01:34, Andrzej Krzemienski via Boost wrote:
I recommend that variant2 should be REJECTED in its current shape.
I find this recommendation excessively harsh personally. I agree that randomly permuting state in order to "avoid" an empty state is worse than an empty state. I just do not understand the antipathy here to a double-buffered-by-default design, and thus the strong guarantee can be easily made, rather than a worse-than-useless basic guarantee which is only technically valid, but is certainly surprising. I do not find an Expected implementation problematic IF triviality of member special function is propagated. It needs to match, exactly, the std::expected edition. In general, I think me and you are thus in general agreement given everything you have discussed and the questions you have raised. I think therefore an acceptance with required conditions of change is the more appropriate recommendation. Reject, in my opinion, is too harsh. Reject is for libraries with no hope of salvation in their present form. Variant2 in my mind is not that. Niall