1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// PR c++/64085 // { dg-do compile { target c++14 } } template<typename T> struct reference_wrapper { T& get() const noexcept; }; template<class T> auto make_monad(reference_wrapper<T> arg) { return [&captive = arg.get()](auto&&) { return 1; }; } int main() { make_monad(reference_wrapper<int&>()); }