Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/torture/pr87997.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* { dg-do compile } */ | |
2 template <typename, typename> struct a; | |
3 template <template <typename> class b, typename c, typename f, typename... d> | |
4 struct a<b<f, d...>, c> { | |
5 using e = b<c>; | |
6 }; | |
7 template <typename f> class h { | |
8 public: | |
9 typedef f g; | |
10 }; | |
11 template <typename j, typename c> using k = typename a<j, c>::e; | |
12 template <typename j> struct l { template <typename f> using m = k<j, f>; }; | |
13 template <typename j> struct n { | |
14 typedef typename j::g o; | |
15 template <typename f> struct p { | |
16 typedef typename l<j>::template m<f> other; | |
17 }; | |
18 }; | |
19 template <typename f, typename j> struct F { | |
20 typedef typename n<j>::template p<f>::other q; | |
21 }; | |
22 template <typename f, typename j = h<f>> class r { | |
23 public: | |
24 typename n<typename F<f, j>::q>::o operator[](long); | |
25 f *t() noexcept; | |
26 }; | |
27 class s { | |
28 void m_fn2(); | |
29 r<int (s::*)()> u; | |
30 }; | |
31 void s::m_fn2() try { | |
32 for (int i;;) | |
33 (this->*u[i])(); | |
34 } catch (...) { | |
35 } |