Ranges

Fold

#include<hysj/ranges/fold.hpp>

Stolen from P2322R0.

unspecified ranges::fold(auto &&r, auto init, auto op, auto proj)
Fold range.

Borrowable Filter

#include<hysj/ranges/borrowable_filter.hpp>

Borrowable std::views::filter.

unspecified views::bfilter(auto &&d, auto p)

Borrowable Transform

#include<hysj/ranges/borrowable_transform.hpp>

Borrowable std::views::transform.

unspecified views::btransform(auto &&d, auto &&f)

Borrowable Join

#include<hysj/ranges/borrowable_join.hpp>

Borrowable std::views::join.

unspecified views::bjoin(auto &&outer)

Common Concat

#include<hysj/ranges/common_concat.hpp>

unspecified views::common_concat(auto&&... inner)
Concatenates a sequence of views of the same type. Propagates borrowability.

Enumerate

#include<hysj/ranges/enumerate.hpp>

Stolen from P2164R1.

Linear Span

#include<hysj/ranges/linear_span.hpp>

Reversible and strideable std::span.

unspecified views::span(auto &&range, auto stride, auto eetent)
Constructs a linear span.

Utility

#include<hysj/ranges/utility.hpp>

unspecified ranges::to_vector(auto range, auto projection)
unspecified ranges::to_map(auto range, auto projection)
Project range into std::vector or std::map.

unspecified views::indices(std::integral auto N)
unspecified views::indices(std::ranges::range auto R)
Creates view of indices \([0,N)\).

unspecified views::one(x)
Analogue to std::views::all for single values. Creates a span for lvalue-references, and a std::views::single for rvalue-references.