std::ranges::lazy_split_view<V,Pattern>::lazy_split_view - cppreference.com

From cppreference.com

lazy_split_view() requires std::default_initializable<V> && std::default_initializable<Pattern> = default;

(1) (since C++20)

constexpr explicit lazy_split_view( V base, Pattern pattern );

(2) (since C++20)

template< ranges::input_range R > requires std::constructible_from<V, views::all_t<R>> && std::constructible_from<Pattern, ranges::single_view< ranges::range_value_t<R>>> constexpr explicit lazy_split_view( R&& r, ranges::range_value_t<R> e );

(3) (since C++20)

Constructs a lazy_split_view.

2) Initializes the underlying view base_ with std::move(base) and the delimiter pattern_ with std::move(pattern).

3) Initializes the underlying view base_ with views::all(std::forward<R>(r)) and the delimiter pattern_ with ranges::single_view{std::move(e)}.

Parameters

base - the underlying view to be split
pattern - a view to be used as the delimiter
e - an element to be used as the delimiter

Example

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 3714
(P2711R1)
C++20 the multi-parameter constructor (2) was not explicit made explicit