[PATCH 1/5] libstdc++: Implement P2325 changes to default-constructibilty of views
Thu Jun 17 18:19:26 GMT 2021
On Thu, 17 Jun 2021, 16:50 Patrick Palka via Libstdc++, <
> This implements the wording changes of P2325R3 "Views should not be
> required to be default constructible". Changes are relatively
> straightforward, besides perhaps those to __box (which now stands
> for copyable-box instead of semiregular-box) and __non_propagating_cache.
> For __box, this patch implements the recommended practice to also avoid
> std::optional when the boxed type is nothrow_move/copy_constructible.
> For __non_propagating_cache, now that it's used by split_view::_M_current,
> we need to add assignment from a value of the underlying type to the
> subset of the std::optional API implemented for the cache (needed by
> split_view::begin()). Hence the new __non_propagating_cache::operator=
> While we're changing __box, this fixes the undesirable list-init in
> the constuctors of the partial specialization as reported in PR100475
> comment #7.
As I said on IRC, I'm not sure why the defaulted default constructors need
to be constrained (rather than just letting them get deleted) but the patch
More information about the Gcc-patches