https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95968
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Blocks| |55004, 54367 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The following is the reduced testcase: struct test_class { consteval test_class( double pack_) { } }; void test_func() { auto t = [](const auto... args) {return test_class(args...);}; t(1.0); } are lambdas consteval by default? I know they are implicit constexpr but I don't think they are consteval though. There is still a diagnostic issue where args#0 is used as it should be args... instead and maybe a little more clear why args... is not a constant value expression. Clang gives: <source>:8:45: error: call to consteval function 'test_class::test_class' is not a constant expression auto t = [](const auto... args) {return test_class(args...);}; ^ <source>:9:6: note: in instantiation of function template specialization 'test_func()::(anonymous class)::operator()<double>' requested here t(1.0); ^ <source>:8:56: note: function parameter 'args' with unknown value cannot be used in a constant expression auto t = [](const auto... args) {return test_class(args...);}; ^ <source>:8:31: note: declared here auto t = [](const auto... args) {return test_class(args...);}; ^ Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54367 [Bug 54367] [meta-bug] lambda expressions https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004 [Bug 55004] [meta-bug] constexpr issues