Range

Meta-header for the range module .

Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>

Adaptations of concepts from the Ranges TS.

Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>

namespace seqan3

The main SeqAn3 namespace.

Helpers for seqan3::semi_alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::semi_alphabet_concept.

Helpers for seqan3::alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::alphabet_concept.

Helpers for seqan3::nucleotide_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::nucleotide_concept.

Alphabet aliases

Other names (typedefs) for seqan3::nucl16

Range concepts

Adapted from the Ranges TS.

concept bool seqan3::range_concept = (bool)ranges::Range<type>()

Defines the requirements of a type that allows iteration over its elements by providing a begin iterator and an end sentinel.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/Range

concept bool seqan3::sized_range_concept = range_concept<type> && (bool)ranges::SizedRange<type>()

Specifies the requirements of a Range type that knows its size in constant time with the size function.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/SizedRange

concept bool seqan3::bounded_range_concept = range_concept<type> && (bool)ranges::BoundedRange<type>()

Specifies requirements of a Range type for which begin and end return objects of the same type.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/BoundedRange

concept bool seqan3::output_range_concept = range_concept<type> && (bool)ranges::OutputRange<type, out_type>()

Specifies requirements of a Range type for which begin returns a type that satisfies seqan3::output_iterator_concept.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/OutputRange

concept bool seqan3::input_range_concept = range_concept<type> && (bool)ranges::InputRange<type>()

Specifies requirements of an Range type for which begin returns a type that satisfies seqan3::input_iterator_concept.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/InputRange

concept bool seqan3::forward_range_concept = input_range_concept<type> && (bool)ranges::ForwardRange<type>()

Specifies requirements of an Range type for which begin returns a type that satisfies seqan3::forward_iterator_concept.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/ForwardRange

concept bool seqan3::bidirectional_range_concept = forward_range_concept<type> && (bool)ranges::BidirectionalRange<type>()

Specifies requirements of an Range type for which begin returns a type that satisfies seqan3::bidirectional_iterator_concept.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/BidirectionalRange

concept bool seqan3::random_access_range_concept = bidirectional_range_concept<type> && (bool)ranges::RandomAccessRange<type>()

Specifies requirements of an Range type for which begin returns a type that satisfies seqan3::random_access_iterator_concept.

See
http://en.cppreference.com/w/cpp/experimental/ranges/iterator/RandomAccessRange

Container concepts

Container concepts as defined by the standard library (or very close).

Container-of-container concepts

Shortcuts for multi-dimensional container concepts.

Provides various metafunctions used by the range module.

Author
Hannes Hauswedell <hannes.hauswedell AT fu-berlin.de>

namespace seqan3

The main SeqAn3 namespace.

Helpers for seqan3::semi_alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::semi_alphabet_concept.

Helpers for seqan3::alphabet_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::alphabet_concept.

Helpers for seqan3::nucleotide_concept

These functions and metafunctions expose member variables and types so that they satisfy seqan3::nucleotide_concept.

Alphabet aliases

Other names (typedefs) for seqan3::nucl16

Range concepts

Adapted from the Ranges TS.

Container concepts

Container concepts as defined by the standard library (or very close).

Container-of-container concepts

Shortcuts for multi-dimensional container concepts.

Typedefs

using seqan3::innermost_value_type_t = typedef typename innermost_value_type<t>::type

Shortcut for seqan3::innermost_value_type.

Variables

constexpr bool has_value_type_v

Whether a type has a value_type member and/or ranges::value_type_t<t> resolves [Value metafunction].

Template Parameters
  • t: The type to recurse on; must have ranges::value_type_t<t>

constexpr size_t dimension_v

Returns the number of times you can call ranges::value_type_t recursively on t [Value metafunction].

Template Parameters
  • t: The type to be queried; must resolve ranges::value_type_t at least once.

template <typename t>
struct innermost_value_type
#include <range/metafunction.hpp>

Recursively determines the value_type on containers and/or iterators [Type metafunction].

Template Parameters
  • t: The type to recurse on; must have ranges::value_type_t<t>

Public Types

template<>
using type = ranges::value_type_t<std::decay_t<t>>

The forwarded type.