diff gcc/testsuite/g++.dg/cpp0x/pr86610.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/cpp0x/pr86610.C	Thu Feb 13 11:34:05 2020 +0900
@@ -0,0 +1,31 @@
+// { dg-do run { target c++11 } }
+// PR c++86610 lambda capture inside template
+
+struct C
+{
+  int operator[](int)
+  { return 1; }
+
+  int operator[](int) const
+  { return 0; } // Want this one
+};
+
+int q()
+{
+  C c;
+  return [=] { return c[0]; }();
+}
+
+template <typename T>
+int f()
+{
+  C c;
+  T d;
+  return [=] { return c[0]; }() 
+    + [=] { return c[0] + d[0]; }();
+}
+
+int main()
+{
+  return q () + f<C>();
+}