diff --git a/ostd/range.hh b/ostd/range.hh index 014a090..7351b32 100644 --- a/ostd/range.hh +++ b/ostd/range.hh @@ -608,12 +608,12 @@ inline auto chunks(T n) { namespace detail { template - inline auto join_proxy(T &&obj, Tuple &tup, TupleIndices) { + inline auto join_proxy(T &&obj, Tuple &&tup, TupleIndices) { return obj.join(forward(get(tup))...); } template - inline auto zip_proxy(T &&obj, Tuple &tup, TupleIndices) { + inline auto zip_proxy(T &&obj, Tuple &&tup, TupleIndices) { return obj.zip(forward(get(tup))...); } } @@ -630,7 +630,8 @@ inline auto join(R1 &&r1, R &&...rr) { return [ranges = forward_as_tuple(forward(r1), forward(rr)...)] (auto &&obj) mutable { using Index = detail::MakeTupleIndices; - return detail::join_proxy(forward(obj), ranges, Index()); + return detail::join_proxy(forward(obj), + forward(ranges), Index()); }; } @@ -646,7 +647,8 @@ inline auto zip(R1 &&r1, R &&...rr) { return [ranges = forward_as_tuple(forward(r1), forward(rr)...)] (auto &&obj) mutable { using Index = detail::MakeTupleIndices; - return detail::zip_proxy(forward(obj), ranges, Index()); + return detail::zip_proxy(forward(obj), + forward(ranges), Index()); }; }