Loading...
Searching...
No Matches
const_iterable_range Interface Reference
Utility » Range

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/utility/range/concept.hpp>`

Inheritance diagram for const_iterable_range:
[legend]

## 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::ranges::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.

This entity is not part of the SeqAn API. Do not rely on it in your applications. Exposition only.

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

- utility/range/concept.hpp

Hide me