// PR c++/78018
// { dg-do compile { target c++14 } }
struct A
{
    void f1();
    template <typename F>
    void f2(F f);
    template<typename T>
    void f3(T t);
};
struct B
{
    template<typename L>
    void f(L) { }
};
void A::f1()
{
    f2([&] (auto t) { f3(t); } );
}
template <typename F>
void A::f2(F f)
{
    B b;
    f(b);
}
template<typename T>
void A::f3(T t)
{
}