SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::single_pass_input_view< urng_t > Class Template Reference

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_viewoperator= (single_pass_input_view const &)=default
 Default copy-assignment.
 
constexpr single_pass_input_viewoperator= (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< statestate_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.
 

Detailed Description

template<std::ranges::view urng_t>
class seqan3::detail::single_pass_input_view< urng_t >

Adds single_pass_input behavior to the underlying range.

Template Parameters
urng_tThe underlying range type. [view_def]

Member Typedef Documentation

◆ urng_iterator_type

template<std::ranges::view urng_t>
using seqan3::detail::single_pass_input_view< urng_t >::urng_iterator_type = std::ranges::iterator_t<urng_t>
private

[view_def]

The iterator type for the underlying range.

Member Function Documentation

◆ begin()

template<std::ranges::view urng_t>
iterator seqan3::detail::single_pass_input_view< urng_t >::begin ( )
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.


The documentation for this class was generated from the following file:
Hide me