44template <std::ranges::input_range urng_t>
45class view_persist :
public std::ranges::view_interface<view_persist<urng_t>>
87 return std::ranges::begin(*
urange);
94 return std::ranges::cbegin(*
urange);
112 return std::ranges::end(*
urange);
119 return std::ranges::cend(*
urange);
126template <
typename urng_t>
145 using base_t::base_t;
154 template <std::ranges::viewable_range urng_t>
155 static auto impl(urng_t && urange)
163 template <std::ranges::range urng_t>
164 static auto impl(urng_t && urange)
166 static_assert(!std::is_lvalue_reference_v<urng_t>,
"BUG: lvalue-reference in persist_fn::impl().");
Provides seqan3::detail::adaptor_base and seqan3::detail::combined_adaptor.
CRTP-base to simplify the definition of range adaptor closure objects and similar types.
Definition: adaptor_base.hpp:77
[adaptor_def]
Definition: persist_view.hpp:138
friend base_t
Befriend the base class so it can call impl().
Definition: persist_view.hpp:149
static auto impl(urng_t &&urange)
For ranges that are viewable, delegate to std::views::all.
Definition: persist_view.hpp:155
The type returned by seqan3::detail::persist.
Definition: persist_view.hpp:46
auto end() noexcept
Returns an iterator to the element following the last element of the range.
Definition: persist_view.hpp:110
view_persist(urng_t &&) -> view_persist< std::remove_reference_t< urng_t > >
Template argument type deduction guide that strips references.
auto end() const noexcept
Returns an iterator to the element following the last element of the range.
Definition: persist_view.hpp:116
auto begin() const noexcept
Returns an iterator to the first element of the container.
Definition: persist_view.hpp:91
std::shared_ptr< urng_t > urange
Shared storage of the underlying range.
Definition: persist_view.hpp:49
auto begin() noexcept
Returns an iterator to the first element of the container.
Definition: persist_view.hpp:85
view_persist() noexcept=default
Defaulted.
Provides various transformation traits used by the range module.
constexpr auto persist
[adaptor_def]
Definition: persist_view.hpp:219
constexpr auto all
Returns a view that includes all elements of the range argument.
Definition: all_view.hpp:204
Specifies requirements of an input range type for which the const version of that type satisfies the ...
Provides various transformation traits for use on iterators.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
The <ranges> header from C++20's standard library.
Additional non-standard concepts for ranges.