xieite::between()

Defined in header <xieite/data/between.hpp>

Returns a view to a range that starts after the first occurrence of a subrange or value and ends before the last occurrence of another subrange or value.


Declaration

#0
[[nodiscard]] constexpr auto between(auto&& range, auto&& after, auto&& before, auto&& after_pred = std::ranges::equal_to(), auto&& before_pred = decltype(after_pred)()) XIEITE_ARROW(
	xieite::before_last(xieite::after(XIEITE_FWD(range), XIEITE_FWD(after), XIEITE_FWD(after_pred)), XIEITE_FWD(before), XIEITE_FWD(before_pred))
)

#1
[[nodiscard]] constexpr auto between(auto&& range, auto&& after, std::ranges::range_common_reference_t<Range> before, auto&& after_pred = std::ranges::equal_to()) XIEITE_ARROW(
	xieite::before_last(xieite::after(XIEITE_FWD(range), XIEITE_FWD(after), XIEITE_FWD(after_pred)), XIEITE_FWD(before))
)

#2
[[nodiscard]] constexpr auto between(auto&& range, std::ranges::range_common_reference_t<Range> after, auto&& before, auto&& before_pred = std::ranges::equal_to()) XIEITE_ARROW(
	xieite::before_last(xieite::after(XIEITE_FWD(range), XIEITE_FWD(after)), XIEITE_FWD(before), XIEITE_FWD(before_pred))
)

#3
[[nodiscard]] constexpr auto between(auto&& range, std::ranges::range_common_reference_t<Range> after, std::ranges::range_common_reference_t<Range> before) XIEITE_ARROW(
	xieite::before_last(xieite::after(XIEITE_FWD(range), XIEITE_FWD(after)), XIEITE_FWD(before))
)


Example

int main() {
	xieite::dump(std::string_view(xieite::between("foo bar qux", ' ', ' ')));
}
Output:
bar
[View in Compiler Explorer]