// PR c++/95451 // { dg-do run { target c++14 } } extern "C" void abort (); struct A { template void foo () { auto b = [this] (auto) { return operator () (); } (0); if (b != 3) abort (); auto c = [this] (int) { return operator () (); } (0); if (c != 3) abort (); } void bar () { auto d = [this] (auto) { return operator () (); } (0); if (d != 3) abort (); auto e = [this] (int) { return operator () (); } (0); if (e != 3) abort (); } int operator () () { return 3; } }; int main () { A a; a.foo (); a.bar (); }