https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104803
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- clang does a better job of explaining though: <source>:6:17: error: call to consteval function '(anonymous class)::operator()' is not a constant expression if (p(i)) { // <== line 5 ^ <source>:19:15: note: in instantiation of function template specialization 'none_of<const int (&)[3], (lambda at <source>:20:5)>' requested here static_assert(none_of(vals, ^ <source>:6:19: note: read of non-const variable 'i' is not allowed in a constant expression if (p(i)) { // <== line 5 ^ <source>:4:14: note: declared here for (int i : r) { ^ <source>:10:17: error: call to consteval function '(anonymous class)::operator()' is not a constant expression if (p(i)) { // <== line 9 ^ <source>:10:19: note: read of non-const variable 'i' is not allowed in a constant expression if (p(i)) { // <== line 9 ^ <source>:4:14: note: declared here for (int i : r) { ^