On Fri, 11 Feb 2022, 17:11 Patrick Palka via Libstdc++, < libstd...@gcc.gnu.org> wrote:
> On Fri, 11 Feb 2022, Patrick Palka wrote: > > > In the P2325R3 backport r11-9555 the relaxation of the constraints on > > the partial specialization of __box (which is semantically equivalent to > > the primary template, only more space efficient) means some > > specializations of __box will now use the partial specialization instead > > of the primary template, which (IIUC) constitutes an ABI change > unsuitable > > for a release branch. This patch reverts this constraint change, which > > isn't needed for correctness anyway. > > > > Similarly the change to use __non_propagating_cache for the data member > > split_view::_M_current (so that it's always default-initializable) also > > constitutes an unsuitable ABI change. This patch reverts this change > > too, and instead further constrains split_view's default constructor to > > require that we can default-initialize _M_current. > > Forgot to clarify that this is for the 11 branch, tested on > x86_64-pc-linux-gnu. Does this look reasonable? I noticed these > issues while backporting r11-9555 to the 10 branch, which doesn't have > __non_propagating_cache or the partial specialization of __box. > Yes, thanks for spotting the problem. OK for gcc-11.