# std::ranges::lazy_split_view<V,Pattern>::lazy_split_view

From cppreference.com
< cpp‎ | ranges‎ | lazy split view

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`.

1) Default constructor. Value-initializes the underlying view `base_` and the delimiter `pattern_`.
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

| This section is incomplete Reason: no 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

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/lazy_split_view/lazy_split_view&oldid=179916"