|
SeqAn3 3.4.2-rc.1
The Modern C++ library for sequence analysis.
|
Adds single_pass_input behavior to the underlying range. More...
#include <seqan3/utility/views/single_pass_input.hpp>
Inheritance diagram for seqan3::detail::single_pass_input_view< urng_t >:Classes | |
| struct | state |
| An internal state to capture the underlying range and a cached iterator. More... | |
Public Member Functions | |
Constructor, destructor, and assignment. | |
All standard functions are explicitly set to default. | |
| constexpr | single_pass_input_view ()=default |
| Default default-constructor. | |
| constexpr | single_pass_input_view (single_pass_input_view const &)=default |
| Default copy-constructor. | |
| constexpr | single_pass_input_view (single_pass_input_view &&)=default |
| Default move-constructor. | |
| constexpr single_pass_input_view & | operator= (single_pass_input_view const &)=default |
| Default copy-assignment. | |
| constexpr single_pass_input_view & | operator= (single_pass_input_view &&)=default |
| Default move-assignment. | |
| ~single_pass_input_view ()=default | |
| Default destructor. | |
| constexpr | single_pass_input_view (urng_t _urng) |
| Construction from the underlying view. | |
|
template<typename other_urng_t > requires (!std::same_as<std::remove_cvref_t<other_urng_t>, single_pass_input_view> && std::ranges::viewable_range<other_urng_t> && // Must come after self type check to avoid conflicts with the move constructor. std::constructible_from<urng_t, std::ranges::ref_view<std::remove_reference_t<other_urng_t>>>) | |
| constexpr | single_pass_input_view (other_urng_t &&_urng) |
| Construction from std::ranges::viewable_range. | |
Iterators | |
| iterator | begin () |
| Returns an iterator to the current begin of the underlying range. | |
| iterator | begin () const =delete |
| Const version of begin is deleted, since the underlying view_state must be mutable. | |
| sentinel | end () |
| Returns a sentinel. | |
| sentinel | end () const =delete |
| Const version of end is deleted, since the underlying view_state must be mutable. | |
Private Types | |
| using | urng_iterator_type = std::ranges::iterator_t< urng_t > |
| [view_def] | |
Member types | |
| using | iterator = basic_iterator< single_pass_input_view > |
| Iterator type. | |
| using | sentinel = std::ranges::sentinel_t< urng_t > |
| The sentinel type. | |
Private Attributes | |
| std::shared_ptr< state > | state_ptr {} |
| Manages the internal state. | |
Friends | |
| template<typename view_t > | |
| class | basic_iterator |
| Friend declaration for seqan3::detail::basic_iterator. | |
Related Symbols | |
(Note that these are not member symbols.) | |
Deduction guide. | |
| template<std::ranges::viewable_range urng_t> | |
| single_pass_input_view (urng_t &&) -> single_pass_input_view< std::views::all_t< urng_t > > | |
| Deduces the single_pass_input_view from the underlying range if it is a std::ranges::viewable_range. | |
Adds single_pass_input behavior to the underlying range.
| urng_t | The underlying range type. [view_def] |
|
private |
[view_def]
The iterator type for the underlying range.
|
inline |
Returns an iterator to the current begin of the underlying range.
Subsequent calls to begin will result in different positions if the iterator was incremented between the calls.