145
|
1 // PR c++/89612
|
|
2 // { dg-do compile { target c++17 } }
|
|
3
|
|
4 template <typename a> using b = typename a ::c;
|
|
5 template <typename> bool d;
|
|
6 template <typename, typename> struct e {
|
|
7 template <typename f, typename g> e(f, g) {}
|
|
8 template <typename h, typename i, typename j>
|
|
9 friend auto k(h &&, const j &, i &&) noexcept(d<b<h>, h> &&d<b<i>, i>);
|
|
10 };
|
|
11 template <typename l, typename m> e(l, m)->e<l, m>;
|
|
12 template <typename l, typename m, typename j>
|
|
13 auto k(l &&, const j &, m &&) noexcept(d<b<l>, l> &&d<b<m>, m>);
|
|
14 int main() {
|
|
15 e(0, [] {});
|
|
16 }
|