1 // PR c++/88419 2 // { dg-do compile { target c++17 } } 3 4 template<class> struct ref_view { 5 template<class T> ref_view(T&&); 6 }; 7 8 template<class R> ref_view(R&) -> ref_view<R>; 9 10 struct ref_fn { 11 template<class R> auto operator()(R r) const 12 noexcept(noexcept(ref_view{r})); 13 }; 14 15 template<class R> struct indirect_view { 16 indirect_view(R); 17 }; 18 19 struct indirect_fn { 20 template<class R> auto operator()(R r) const 21 noexcept(noexcept(indirect_view{r})); 22 }; 23