SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
Range

Provides seqan3 general purpose range functionality. More...

+ Collaboration diagram for Range:

Classes

class  seqan3::detail::adaptor_base< derived_type, stored_args_ts >
 CRTP-base to simplify the definition of range adaptor closure objects and similar types. More...
 
class  seqan3::detail::adaptor_for_view_without_args< view_type >
 Template for range adaptor closure objects that store no arguments and always delegate to the view constructor. More...
 
class  seqan3::detail::adaptor_from_functor< functor_type, stored_args_ts >
 Template for range adaptor closure objects that store arguments and wrap a proto-adaptor. More...
 
class  seqan3::detail::combined_adaptor< left_adaptor_t, right_adaptor_t >
 Template for range adaptor closure objects that consist of two other range adaptor closure objects. More...
 
class  seqan3::detail::inherited_iterator_base< derived_t, base_t >
 A CRTP base template for creating iterators that inherit from other iterators. More...
 
class  seqan3::detail::random_access_iterator< range_type >
 A generic random access iterator that delegates most operations to the range. More...
 
class  seqan3::detail::random_access_iterator_base< range_type, derived_t_template, args_t >
 A CRTP base template for creating random access iterators. More...
 
struct  seqan3::range_innermost_value< t >
 Recursively determines the value_type on containers and/or iterators. More...
 

Typedefs

template<bool const_range, typename range_t >
using seqan3::detail::maybe_const_iterator_t = std::ranges::iterator_t< maybe_const_range_t< const_range, range_t > >
 Returns the const iterator of range_t if const_range is true; otherwise the non-const iterator.
 
template<bool const_range, typename range_t >
using seqan3::detail::maybe_const_range_t = std::conditional_t< const_range, range_t const, range_t >
 Makes range_t const if const_range is true; otherwise keeps range_t as is.
 
template<bool const_v, typename range_t >
using seqan3::detail::maybe_const_sentinel_t = std::ranges::sentinel_t< maybe_const_range_t< const_v, range_t > >
 Returns the const sentinel of range_t if const_range is true; otherwise the non-const sentinel.
 
template<typename t >
using seqan3::range_innermost_value_t = typename range_innermost_value< t >::type
 Shortcut for seqan3::range_innermost_value (transformation_trait shortcut).
 

Functions

template<std::ranges::input_range rng_t>
constexpr void seqan3::detail::consume (rng_t &&rng)
 Iterate over a range.
 

Variables

template<typename t >
constexpr size_t seqan3::range_dimension_v = 1
 Returns the number of times you can call seqan3::value_type_t recursively on t (type trait).
 

Detailed Description

Provides seqan3 general purpose range functionality.

See also
Core

Typedef Documentation

◆ range_innermost_value_t

template<typename t >
using seqan3::range_innermost_value_t = typedef typename range_innermost_value<t>::type

Function Documentation

◆ consume()

template<std::ranges::input_range rng_t>
constexpr void seqan3::detail::consume ( rng_t &&  rng)
constexpr

Iterate over a range.

Template Parameters
rng_tType of the range; must satisfy std::ranges::input_range.
Parameters
rngThe range.
  • std::ranges::input_range<rng_t>: Consumes input range.
  • std::ranges::forward_range<rng_t>: NO-OP.

Variable Documentation

◆ range_dimension_v

template<typename t >
constexpr size_t seqan3::range_dimension_v = 1
constexpr

Returns the number of times you can call seqan3::value_type_t recursively on t (type trait).

Template Parameters
tThe type to be queried; must resolve seqan3::value_type_t at least once.

Attention, this type trait implicitly removes cv-qualifiers and reference from the types it recurses on and returns.

Hide me