1 // { dg-do run { target c++11 } } 2 // PR c++86610 lambda capture inside template 3 4 struct C 5 { 6 int operator[](int) 7 { return 1; } 8 9 int operator[](int) const 10 { return 0; } // Want this one 11 }; 12 q()13int q() 14 { 15 C c; 16 return [=] { return c[0]; }(); 17 } 18 19 template <typename T> f()20int f() 21 { 22 C c; 23 T d; 24 return [=] { return c[0]; }() 25 + [=] { return c[0] + d[0]; }(); 26 } 27 main()28int main() 29 { 30 return q () + f<C>(); 31 } 32