https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123700

--- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> ---
A workaround is to use an intermediate variable that holds the lambda:

template <typename> constexpr int zero = 0;
template <auto> struct Type;

int outer(auto) {
  constexpr auto lambda = [](auto) {};
  using inner = Type<lambda>;
  return [](auto) { return zero<inner>; }(0);
}

int main() { outer(0); }

Reply via email to