// PR c++/80767 // { dg-do compile { target c++11 } } // { dg-additional-options "-Wno-return-type" } template struct A { using type = U; }; template struct B : B::type, B::type { using type = B; using B::type::operator(); }; template struct B { using type = F; }; struct { template ::type...>::type> Overload operator()(F...){} } a; int main() { auto f = a([](int) {}, [](float) {}); f({}); }