https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117515
--- Comment #1 from Jan Schultke <janschultke at googlemail dot com> ---
The issue is not limited to constructors or constructor templates, but seems to
be related to function-style casts containing lambdas inside static_assert:
> static_assert(requires { int([] {}); });
... is rejected with
> <source>:1:15: error: static assertion failed
> 1 | static_assert(requires { int([] {}); });
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> <source>:1:15: note: constraints not satisfied
> <source>:1:26: note: the required expression '(int)(<expression error>)' is
> invalid
> 1 | static_assert(requires { int([] {}); });
> | ^~~~~~~~~~
this is particularly weird because
> bool b = requires { int([] {}); };
... is accepted, so static_assert is in some way related.