17 lines · cpp
1// RUN: %clang_cc1 -std=c++20 -verify %s2// expected-no-diagnostics3 4namespace FunctionTemplate {5 template<typename> struct S {6 template<int> auto foo();7 8 // Check that we don't confuse the depth-1 level-0 parameter of the generic9 // lambda with the depth-1 level-0 parameter of the primary 'foo' template.10 template<> constexpr auto foo<1>() {11 return [](auto x) { return x; };12 }13 };14 15 static_assert(S<void>().template foo<1>()(2) == 2);16}17