SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
|
The type returned by seqan3::views::interleave. More...
#include <seqan3/utility/views/interleave.hpp>
Public Member Functions | |
reference | operator[] (size_type const i) |
Return the i-th element. | |
const_reference | operator[] (size_type const i) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
size_type | size () |
Returns the number of elements in the view. | |
size_type | size () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Constructors, destructor and assignment | |
constexpr | view_interleave () noexcept=default |
Defaulted. | |
constexpr | view_interleave (view_interleave const &rhs) noexcept=default |
Defaulted. | |
constexpr | view_interleave (view_interleave &&rhs) noexcept=default |
Defaulted. | |
constexpr view_interleave & | operator= (view_interleave const &rhs) noexcept=default |
Defaulted. | |
constexpr view_interleave & | operator= (view_interleave &&rhs) noexcept=default |
Defaulted. | |
~view_interleave () noexcept=default | |
Defaulted. | |
constexpr | view_interleave (urng_t &&_urange, size_t const _step_size, inserted_rng_t &&_inserted_range) |
Construct from a standard random_access_range urange and inserted_range. | |
template<typename orng_t , typename oirng_t > requires std::constructible_from<urng_t, decltype(views::type_reduce(std::declval<orng_t>()))> && std::constructible_from<inserted_rng_t, seqan3::detail::all_t<oirng_t>> | |
constexpr | view_interleave (orng_t &&_urange, size_t const _step_size, oirng_t &&_inserted_range) |
Construct from a viewable_range urange and inserted_range by wrapping in a views::type_reduce. | |
Iterators | |
iterator | begin () noexcept |
Returns an iterator to the first element of the container. | |
const_iterator | begin () const noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
iterator | end () noexcept |
Returns an iterator to the element following the last element of the container. | |
const_iterator | end () const noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Private Types | |
Associated types | |
These associated types are needed in seqan3::detail::random_access_iterator. | |
using | size_type = std::ranges::range_size_t< urng_t > |
This resolves to range_type::size_type as the underlying range is guaranteed to be sized. | |
using | reference = std::common_reference_t< std::ranges::range_reference_t< urng_t >, std::ranges::range_reference_t< inserted_rng_t > > |
The reference_type. | |
using | const_reference = detail::transformation_trait_or_t< std::common_reference< std::ranges::range_reference_t< urng_t const >, std::ranges::range_reference_t< inserted_rng_t const > >, void > |
The const_reference type is equal to the reference type. | |
using | value_type = std::ranges::range_value_t< urng_t > |
The value_type (which equals the reference_type with any references removed). | |
using | difference_type = std::ranges::range_difference_t< urng_t > |
A signed integer type, usually std::ptrdiff_t. | |
using | iterator = detail::random_access_iterator< view_interleave > |
The iterator type of this view (a random access iterator). | |
using | const_iterator = detail::random_access_iterator< view_interleave const > |
The const_iterator type is equal to the iterator type. | |
Private Attributes | |
inserted_rng_t | inserted_range |
The range to be inserted into urange. | |
size_t | step_size {} |
The step size for the insertion. | |
urng_t | urange |
The underlying range. | |
Related Symbols | |
(Note that these are not member symbols.) | |
template<std::ranges::random_access_range urng_t, std::ranges::random_access_range inserted_rng_t> | |
view_interleave (urng_t &&, size_t, inserted_rng_t &&) -> view_interleave< decltype(views::type_reduce(std::declval< urng_t >())), seqan3::detail::all_t< inserted_rng_t > > | |
Template argument type deduction guide for viewable_range inputs. | |
The type returned by seqan3::views::interleave.
urng_t | The type of the underlying range, must model std::ranges::random_access_range. |
Note that most members of this class are generated by std::ranges::view_interface which is not yet documented here.
|
inlineexplicitconstexpr |
Construct from a standard random_access_range urange and inserted_range.
[in] | _urange | The underlying range. |
[in] | _step_size | The step size for the insertion. |
[in] | _inserted_range | The range to be inserted. |
|
inlineexplicitconstexpr |
Construct from a viewable_range urange and inserted_range by wrapping in a views::type_reduce.
orng_t | A type that is the same as urng_t once wrapped in a view (e.g. reference to container). |
oirng_t | A type that is the same as inserted_rng_t once wrapped in a view (e.g. reference to container). |
[in] | _urange | The underlying range. |
[in] | _step_size | The step size for the insertion. |
[in] | _inserted_range | The range to be inserted. |
|
inlinenoexcept |
Returns an iterator to the first element of the container.
If the container is empty, the returned iterator will be equal to end().
Constant.
No-throw guarantee.
|
inlinenoexcept |
Returns an iterator to the element following the last element of the container.
This element acts as a placeholder; attempting to dereference it results in undefined behaviour.
Constant.
No-throw guarantee.
|
inline |
Return the i-th element.
i | The element to retrieve. |
Accessing an element behind the last causes undefined behaviour. In debug mode an assertion checks the size of the container.
Constant.
No-throw guarantee.
|
inline |
Returns the number of elements in the view.
Constant.