SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
seqan3::detail::combined_adaptor< left_adaptor_t, right_adaptor_t > Class Template Reference

Template for range adaptor closure objects that consist of two other range adaptor closure objects. More...

#include <seqan3/range/views/detail.hpp>

+ Inheritance diagram for seqan3::detail::combined_adaptor< left_adaptor_t, right_adaptor_t >:

Public Member Functions

constexpr auto operator() (urng_t &&urange) &&
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
constexpr auto operator() (urng_t &&urange) const &
 Function-style overload for ranges.
 
Constructors, destructor and assignment
constexpr combined_adaptor ()=default
 Defaulted.
 
constexpr combined_adaptor (combined_adaptor const &) noexcept=default
 Defaulted.
 
constexpr combined_adaptor (combined_adaptor &&) noexcept=default
 Defaulted.
 
constexpr combined_adaptoroperator= (combined_adaptor const &) noexcept=default
 Defaulted.
 
constexpr combined_adaptoroperator= (combined_adaptor &&) noexcept=default
 Defaulted.
 
 ~combined_adaptor () noexcept=default
 Defaulted.
 
constexpr combined_adaptor (left_adaptor_t l, right_adaptor_t r)
 Store both arguments in the adaptor.
 

Private Types

using base_type = adaptor_base< combined_adaptor< left_adaptor_t, right_adaptor_t >, left_adaptor_t, right_adaptor_t >
 Type of the CRTP-base.
 

Private Member Functions

constexpr auto pass_args_to_impl (urng_t &&urange, std::index_sequence< Is... > const &) &&
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
constexpr auto pass_args_to_impl (urng_t &&urange, std::index_sequence< Is... > const &) const &
 Helper function to unpack the tuple and delegate to the derived type.
 

Static Private Member Functions

template<std::ranges::input_range urng_t, typename left_adaptor_t_ , typename right_adaptor_t_ >
static auto impl (urng_t &&urange, left_adaptor_t_ &&left_adaptor, right_adaptor_t_ &&right_adaptor)
 Combine all arguments via operator|.
 

Private Attributes

std::tuple< stored_args_ts... > arguments
 Stores the arguments.
 
friend base_type
 Befriend the base class so it can call impl().
 
friend derived_type
 Befriend the derived_type so it can access private members if need be.
 

Detailed Description

template<typename left_adaptor_t, typename right_adaptor_t>
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.

Template Parameters
left_adaptor_tType of the first stored adaptor.
right_adaptor_tType of the second stored adaptor.

If invoked with a range, this adaptor resolves to piping the range into left adaptor and the resulting range into the right adaptor.


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