On Thu, 6 Mar 2025 at 20:15, Jonathan Wakely <jwak...@redhat.com> wrote:

> On Thu, 6 Mar 2025 at 20:13, Jonathan Wakely wrote:
> >
> > The r15-2326-gea435261ad58ea change missed a static_assert for
> > is_move_constructible_v in expected<cv void, E>::value()&&. When
> > exceptions are enabled, the program is ill-formed if the error type is
> > not move constructible, because we can't construct the
> > std::bad_expected_access. But when using -fno-exceptions, we never
> > construct an exception, so don't need to copy/move the error value. So
> > that the same code compiles with/without exceptions enabled, we should
> > enforce the requirement explicitly.
> >
> > Add the static_assert, and a test that verifies the Mandates:
> > conditions added by LWG 3843 and 3490 are enforced even with
> > -fno-exceptions.
> >
> > libstdc++-v3/ChangeLog:
> >
> >         * include/std/expected (expected<cv void,E>::value()&&):
> >         Add missing static_assert for LWG 3940.
> >         * testsuite/20_util/expected/lwg3843.cc: New test.
> > ---
> >
> > Tested x86_64-linux.
>
> Also available for review at
> https://forge.sourceware.org/gcc/gcc-TEST/pulls/37


Tomasz reviewed it at the forge. Pushed to trunk now.

Reply via email to