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.