44 #include <range/v3/utility/iterator_traits.hpp> 45 #include <range/v3/range_traits.hpp> 65 concept has_value_type = requires {
typename value_type_t<remove_cvref_t<t>>; };
84 template <std::ranges::InputRange rng_t>
101 template <std::ranges::InputRange rng_t>
118 template <std::ranges::InputRange rng_t>
135 template <std::ranges::InputRange rng_t>
152 template <std::ranges::Range rng_t>
169 template <std::ranges::SizedRange rng_t>
176 using type = decltype(
size(std::declval<rng_t &>()));
192 template <
typename t>
194 requires detail::has_value_type<t>
203 template <
typename t>
204 requires detail::has_value_type<t> && detail::has_value_type<value_type_t<remove_cvref_t<t>>>
212 template <
typename t>
229 template <
typename t>
231 requires detail::has_value_type<t>
236 template <
typename t>
237 requires detail::has_value_type<t> && detail::has_value_type<value_type_t<remove_cvref_t<t>>>
238 constexpr
size_t dimension_v<t> = dimension_v<value_type_t<remove_cvref_t<t>>> + 1;
258 template <
typename t1,
typename t2>
262 requires (dimension_v<t1> == dimension_v<t2>);
value_type_t< std::ranges::iterator_t< rng_t > > type
Return the value_type member definition from the queried type's iterator.
Definition: range.hpp:91
decltype(size(std::declval< rng_t & >())) type
Return the size_type as returned by the size function.
Definition: range.hpp:176
value_type_t< remove_cvref_t< t > > type
The return type (recursion not shown).
Definition: range.hpp:199
Provides C++20 additions to the <iterator> header.
Contains various shortcuts for common std::ranges functions.
rvalue_reference_t< std::ranges::iterator_t< rng_t > > type
Return the rvalue_reference member definition from the queried type's iterator.
Definition: range.hpp:125
reference_t< std::ranges::iterator_t< rng_t > > type
Return the reference member definition from the queried type's iterator.
Definition: range.hpp:108
::ranges::size size
Alias for ranges::size. Obtains the size of a range whose size can be calculated in constant time...
Definition: ranges:195
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:58
Two types are "compatible" if their seqan3::dimension_v and their seqan3::innermost_value_type_t are ...
Type metafunction that returns the difference_type of another type [metafunction declaration].
Definition: pre.hpp:172
Recursively determines the value_type on containers and/or iterators [Type metafunction].
Definition: range.hpp:196
Adaptations of concepts from the Ranges TS.
Type metafunction that returns the size_type of another type [metafunction declaration].
Definition: pre.hpp:198
The Iterator concept forms the basis of the iterator concept taxonomy; every iterator satisfies the I...
Definition: aligned_sequence_concept.hpp:288
Provides C++20 additions to the type_traits header.
Provides various metafunctions on generic types.
Type metafunction that returns the const_reference of another type [metafunction declaration].
Definition: pre.hpp:146
Type metafunction that returns the rvalue_reference of another type [metafunction declaration]...
Definition: pre.hpp:118
Type metafunction that returns the reference of another type [metafunction declaration].
Definition: pre.hpp:92
Provides various metafunctions for use on iterators.
Type metafunction that returns the value_type of another type [metafunction declaration].
Definition: pre.hpp:66
reference_t< std::ranges::iterator_t< rng_t const > > type
Resolves to the reference type of the const_iterator of t (not the const iterator!).
Definition: range.hpp:142
difference_type_t< std::ranges::iterator_t< rng_t > > type
Return the difference_type member definition from the queried type's iterator.
Definition: range.hpp:159