SeqAn3  3.0.1
The Modern C++ library for sequence analysis.
const_iterable_range Interface Reference

Specifies requirements of an input range type for which the const version of that type satisfies the same strength input range concept as the non-const version. More...

#include <seqan3/range/concept.hpp>

+ Inheritance diagram for const_iterable_range:

Detailed Description

Specifies requirements of an input range type for which the const version of that type satisfies the same strength input range concept as the non-const version.

For a type t it usually holds that if t is a range, t const is also a range with similar properties, but there are cases where this does not hold:

  • a const range is usually not writable so std::output_range is lost; pure output ranges (those that are not also input ranges) are therefore not const-iterable;
  • single-pass input ranges, like SeqAn files, are not const-iterable, because "single-pass-ness" implies that there is something in the range that changes on every iterator increment (and const ranges can't change);
  • certain views store a state with their algorithm that also changes when begin() is called or an iterator is incremented; these may be not be const-iterable, because the standard library (and also SeqAn) guarantees that it is safe to call const-qualified functions concurrently.

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