Range-v3
Range algorithms, views, and actions for the Standard Library
 
Loading...
Searching...
No Matches
Iterator Concepts

Iterator concepts More...

Concepts

concept  ranges::readable_
 The readable_ concept.
 
concept  ranges::indirectly_readable
 The indirectly_readable concept.
 
concept  ranges::writable_
 The writable_ concept.
 
concept  ranges::indirectly_writable
 The indirectly_writable concept.
 
concept  ranges::weakly_incrementable_
 The weakly_incrementable_ concept.
 
concept  ranges::weakly_incrementable
 The weakly_incrementable concept.
 
concept  ranges::incrementable_
 The incrementable_ concept.
 
concept  ranges::incrementable
 The incrementable concept.
 
concept  ranges::input_or_output_iterator_
 The input_or_output_iterator_ concept.
 
concept  ranges::input_or_output_iterator
 The input_or_output_iterator concept.
 
concept  ranges::sentinel_for
 The sentinel_for concept.
 
concept  ranges::sized_sentinel_for_
 The sized_sentinel_for_ concept.
 
concept  ranges::sized_sentinel_for
 The sized_sentinel_for concept.
 
concept  ranges::output_iterator_
 The output_iterator_ concept.
 
concept  ranges::output_iterator
 The output_iterator concept.
 
concept  ranges::with_category_
 The with_category_ concept.
 
concept  ranges::input_iterator
 The input_iterator concept.
 
concept  ranges::forward_iterator
 The forward_iterator concept.
 
concept  ranges::bidirectional_iterator_
 The bidirectional_iterator_ concept.
 
concept  ranges::bidirectional_iterator
 The bidirectional_iterator concept.
 
concept  ranges::random_access_iterator_
 The random_access_iterator_ concept.
 
concept  ranges::random_access_iterator
 The random_access_iterator concept.
 
concept  ranges::contiguous_iterator_
 The contiguous_iterator_ concept.
 
concept  ranges::contiguous_iterator
 The contiguous_iterator concept.
 
concept  ranges::indirectly_unary_invocable
 The indirectly_unary_invocable concept.
 
concept  ranges::indirectly_regular_unary_invocable_
 The indirectly_regular_unary_invocable_ concept.
 
concept  ranges::indirectly_regular_unary_invocable
 The indirectly_regular_unary_invocable concept.
 
concept  ranges::indirect_unary_predicate_
 The indirect_unary_predicate_ concept.
 
concept  ranges::indirect_unary_predicate
 The indirect_unary_predicate concept.
 
concept  ranges::indirect_binary_predicate_impl_
 The indirect_binary_predicate_impl_ concept.
 
concept  ranges::indirect_binary_predicate_
 The indirect_binary_predicate_ concept.
 
concept  ranges::indirect_relation_
 The indirect_relation_ concept.
 
concept  ranges::indirect_relation
 The indirect_relation concept.
 
concept  ranges::indirect_strict_weak_order_
 The indirect_strict_weak_order_ concept.
 
concept  ranges::indirect_strict_weak_order
 The indirect_strict_weak_order concept.
 
concept  ranges::indirectly_movable_
 The indirectly_movable_ concept.
 
concept  ranges::indirectly_movable
 The indirectly_movable concept.
 
concept  ranges::indirectly_movable_storable_
 The indirectly_movable_storable_ concept.
 
concept  ranges::indirectly_movable_storable
 The indirectly_movable_storable concept.
 
concept  ranges::indirectly_copyable_
 The indirectly_copyable_ concept.
 
concept  ranges::indirectly_copyable
 The indirectly_copyable concept.
 
concept  ranges::indirectly_copyable_storable_
 The indirectly_copyable_storable_ concept.
 
concept  ranges::indirectly_copyable_storable
 The indirectly_copyable_storable concept.
 
concept  ranges::indirectly_swappable_
 The indirectly_swappable_ concept.
 
concept  ranges::indirectly_swappable
 The indirectly_swappable concept.
 
concept  ranges::projected_indirect_relation_
 The projected_indirect_relation_ concept.
 
concept  ranges::indirectly_comparable
 The indirectly_comparable concept.
 
concept  ranges::permutable
 The permutable concept.
 
concept  ranges::projected_indirect_strict_weak_order_
 The projected_indirect_strict_weak_order_ concept.
 
concept  ranges::mergeable
 
concept  ranges::sortable
 The sortable concept.
 

Classes

struct  ranges::incrementable_traits< detail::projected_< I, Proj > >
 
struct  ranges::sentinel_tag
 
struct  ranges::sized_sentinel_tag
 

Typedefs

template<typename Fun , typename... Is>
using ranges::indirect_result_t
 
template<typename Rng >
using ranges::iterator_tag_of
 
template<typename I , typename Proj >
using ranges::projected = typename detail::select_projected_<Proj>::template apply<I>
 
template<typename S , typename I >
using ranges::sentinel_tag_of
 

Variables

concept ranges::P1
 
concept ranges::projected< I2, P2 >
 
template<typename I >
constexpr bool ranges::readable
 
template<typename O , typename T >
constexpr bool ranges::writable
 

Detailed Description

Iterator concepts

Typedef Documentation

◆ indirect_result_t

template<typename Fun , typename... Is>
using ranges::indirect_result_t

#include <range/v3/iterator/concepts.hpp>

Initial value:
detail::enable_if_t<(bool)and_v<(bool)indirectly_readable<Is>...>,
invoke_result_t<Fun, iter_reference_t<Is>...>>
The indirectly_readable concept.
Definition concepts.hpp:140

◆ iterator_tag_of

template<typename Rng >
using ranges::iterator_tag_of

#include <range/v3/iterator/concepts.hpp>

Initial value:
std::enable_if_t<
std::random_access_iterator_tag,
std::bidirectional_iterator_tag,
std::forward_iterator_tag,
std::input_iterator_tag>>>>>
The bidirectional_iterator concept.
Definition concepts.hpp:371
The contiguous_iterator concept.
Definition concepts.hpp:411
The forward_iterator concept.
Definition concepts.hpp:351
The input_iterator concept.
Definition concepts.hpp:343
The random_access_iterator concept.
Definition concepts.hpp:397
typename detail::_cond< If >::template invoke< Then, Else > conditional_t
Select one type or another depending on a compile-time Boolean.
Definition meta.hpp:1148
Definition traits.hpp:48

◆ sentinel_tag_of

template<typename S , typename I >
using ranges::sentinel_tag_of

#include <range/v3/iterator/concepts.hpp>

Initial value:
std::enable_if_t<
sized_sentinel_tag,
sentinel_tag>>
The sentinel_for concept.
Definition concepts.hpp:293
The sized_sentinel_for concept.
Definition concepts.hpp:316

Variable Documentation

◆ readable

template<typename I >
bool ranges::readable
constexpr

◆ writable

template<typename O , typename T >
bool ranges::writable
constexpr

#include <range/v3/iterator/concepts.hpp>

Initial value:
=
The indirectly_writable concept.
Definition concepts.hpp:162