On Thu, 4 Jun 2020 at 03:05, Ville Voutilainen <[email protected]> wrote:
> > > "noexcept" is a red herring, what matters is defaulted vs user-provided. > > > In one case, we end up zero-initializing the whole buffer, and not in the > > > other. > > > > Yes, I just came to that conclusion. This is value-init, so the > > language manages to zero-init the whole-object, > > but with the change, it just calls a user-provided constructor. > > That'll then merely boil down to value-initializing just the _Empty > > part > > of the _Storage in _Optional_payload_base. We are in > > http://eel.is/c++draft/dcl.init#8.1.2. The change takes us > > to http://eel.is/c++draft/dcl.init#8.1.1. > > Ha, and optional's default constructor isn't even specified to be defaulted. So the change is correct. Can we test the change somehow?
