Iterator functionality. More...
Modules | |
Iterator Concepts | |
Iterator concepts. | |
Typedefs | |
template<typename I > | |
using | ranges::iter_common_reference_t = common_reference_t< iter_reference_t< I >, iter_value_t< I > & > |
template<typename T > | |
using | ranges::iter_difference_t = typename incrementable_traits< uncvref_t< T > >::difference_type |
template<typename R > | |
using | ranges::iter_reference_t = detail::iter_reference_t_< R > |
template<typename I > | |
using | ranges::iter_rvalue_reference_t = detail::iter_rvalue_reference_t< I > |
template<typename R > | |
using | ranges::iter_value_t = detail::iter_value_t_< uncvref_t< R > > |
Functions | |
template<typename Cur , typename Cur2 > requires detail::sentinel_for_cursor<Cur2, Cur> | |
constexpr bool | ranges::operator!= (basic_iterator< Cur > const &left, basic_iterator< Cur2 > const &right) |
template<typename Cur , typename S > requires detail::sentinel_for_cursor<S, Cur> | |
constexpr bool | ranges::operator!= (basic_iterator< Cur > const &left, S const &right) |
template<typename I1 , typename I2 , typename S1 , typename S2 > requires sentinel_for<S1, I2> && sentinel_for<S2, I1> | |
bool | ranges::operator!= (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) |
template<typename S , typename Cur > requires detail::sentinel_for_cursor<S, Cur> | |
constexpr bool | ranges::operator!= (S const &left, basic_iterator< Cur > const &right) |
template<typename Cur > requires detail::random_access_cursor<Cur> | |
constexpr basic_iterator< Cur > | ranges::operator+ (basic_iterator< Cur > left, typename basic_iterator< Cur >::difference_type n) |
template<typename Cur > requires detail::random_access_cursor<Cur> | |
constexpr basic_iterator< Cur > | ranges::operator+ (typename basic_iterator< Cur >::difference_type n, basic_iterator< Cur > right) |
template<typename Cur , typename S > requires detail::sized_sentinel_for_cursor<S, Cur> | |
constexpr basic_iterator< Cur >::difference_type | ranges::operator- (basic_iterator< Cur > const &left, S const &right) |
template<typename Cur > requires detail::random_access_cursor<Cur> | |
constexpr basic_iterator< Cur > | ranges::operator- (basic_iterator< Cur > left, typename basic_iterator< Cur >::difference_type n) |
template<typename Cur2 , typename Cur > requires detail::sized_sentinel_for_cursor<Cur2, Cur> | |
constexpr basic_iterator< Cur >::difference_type | ranges::operator- (basic_iterator< Cur2 > const &left, basic_iterator< Cur > const &right) |
template<typename I1 , typename I2 , typename S1 , typename S2 > requires sized_sentinel_for<I1, I2> && sized_sentinel_for<S1, I2> && sized_sentinel_for<S2, I1> | |
iter_difference_t< I2 > | ranges::operator- (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) |
template<typename S , typename Cur > requires detail::sized_sentinel_for_cursor<S, Cur> | |
constexpr basic_iterator< Cur >::difference_type | ranges::operator- (S const &left, basic_iterator< Cur > const &right) |
template<typename Left , typename Right > requires detail::sized_sentinel_for_cursor<Right, Left> | |
constexpr bool | ranges::operator< (basic_iterator< Left > const &left, basic_iterator< Right > const &right) |
template<typename Left , typename Right > requires detail::sized_sentinel_for_cursor<Right, Left> | |
constexpr bool | ranges::operator<= (basic_iterator< Left > const &left, basic_iterator< Right > const &right) |
template<typename Cur , typename Cur2 > requires detail::sentinel_for_cursor<Cur2, Cur> | |
constexpr bool | ranges::operator== (basic_iterator< Cur > const &left, basic_iterator< Cur2 > const &right) |
template<typename Cur , typename S > requires detail::sentinel_for_cursor<S, Cur> | |
constexpr bool | ranges::operator== (basic_iterator< Cur > const &left, S const &right) |
template<typename I1 , typename I2 , typename S1 , typename S2 > requires sentinel_for<S1, I2> && sentinel_for<S2, I1> && (!equality_comparable_with<I1, I2>) | |
bool | ranges::operator== (common_iterator< I1, S1 > const &x, common_iterator< I2, S2 > const &y) |
template<typename S , typename Cur > requires detail::sentinel_for_cursor<S, Cur> | |
constexpr bool | ranges::operator== (S const &left, basic_iterator< Cur > const &right) |
template<typename Left , typename Right > requires detail::sized_sentinel_for_cursor<Right, Left> | |
constexpr bool | ranges::operator> (basic_iterator< Left > const &left, basic_iterator< Right > const &right) |
template<typename Left , typename Right > requires detail::sized_sentinel_for_cursor<Right, Left> | |
constexpr bool | ranges::operator>= (basic_iterator< Left > const &left, basic_iterator< Right > const &right) |
Variables | |
constexpr advance_fn | ranges::advance {} |
constexpr back_inserter_fn | ranges::back_inserter {} |
constexpr default_sentinel_t | ranges::default_sentinel {} |
constexpr distance_fn | ranges::distance {} |
constexpr distance_compare_fn | ranges::distance_compare {} |
constexpr enumerate_fn | ranges::enumerate {} |
constexpr front_inserter_fn | ranges::front_inserter {} |
constexpr get_cursor_fn | ranges::get_cursor {} |
constexpr inserter_fn | ranges::inserter {} |
template<typename I , typename O > | |
constexpr bool | ranges::is_indirectly_movable_v |
template<typename T , typename U > | |
constexpr bool | ranges::is_indirectly_swappable_v |
template<typename I , typename O > | |
constexpr bool | ranges::is_nothrow_indirectly_movable_v |
template<typename T , typename U > | |
constexpr bool | ranges::is_nothrow_indirectly_swappable_v |
constexpr iter_distance_fn | ranges::iter_distance {} |
constexpr iter_distance_compare_fn | ranges::iter_distance_compare {} |
constexpr iter_enumerate_fn | ranges::iter_enumerate {} |
constexpr _iter_move_::fn | ranges::iter_move {} |
constexpr iter_size_fn | ranges::iter_size {} |
constexpr _iter_swap_::fn | iter_swap {} |
constexpr make_move_iterator_fn | ranges::make_move_iterator {} |
constexpr make_move_sentinel_fn | ranges::make_move_sentinel {} |
constexpr make_ostream_joiner_fn | ranges::make_ostream_joiner {} |
constexpr make_reverse_iterator_fn | ranges::make_reverse_iterator {} |
constexpr move_into_fn | ranges::move_into {} |
constexpr next_fn | ranges::next {} |
constexpr prev_fn | ranges::prev {} |
constexpr adl_uncounted_recounted_detail::recounted_fn | ranges::recounted {} |
constexpr adl_uncounted_recounted_detail::uncounted_fn | ranges::uncounted {} |
constexpr unreachable_sentinel_t | ranges::unreachable {} |
Iterator functionality.
|
constexpr |
|
constexpr |
#include <range/v3/iterator/insert_iterators.hpp>
back_inserter_fn
|
constexpr |
|
constexpr |
#include <range/v3/iterator/operations.hpp>
distance_compare_fn
|
related |
#include <range/v3/iterator/operations.hpp>
enumerate_fn
|
constexpr |
#include <range/v3/iterator/insert_iterators.hpp>
front_inserter_fn
|
constexpr |
#include <range/v3/iterator/basic_iterator.hpp>
get_cursor_fn
|
constexpr |
#include <range/v3/iterator/insert_iterators.hpp>
inserter_fn
|
constexpr |
#include <range/v3/iterator/access.hpp>
|
constexpr |
#include <range/v3/iterator/access.hpp>
|
constexpr |
#include <range/v3/iterator/access.hpp>
|
constexpr |
#include <range/v3/iterator/access.hpp>
|
constexpr |
#include <range/v3/iterator/operations.hpp>
iter_distance_fn
|
constexpr |
#include <range/v3/iterator/operations.hpp>
iter_distance_compare_fn
|
constexpr |
#include <range/v3/iterator/operations.hpp>
iter_enumerate_fn
|
constexpr |
#include <range/v3/iterator/operations.hpp>
iter_size_fn
|
constexpr |
#include <range/v3/iterator/stream_iterators.hpp>
make_ostream_joiner_fn
|
constexpr |
#include <range/v3/iterator/move_iterators.hpp>
move_into_fn
|
constexpr |
#include <range/v3/iterator/operations.hpp>
next_fn
Referenced by ranges::copy_backward(), ranges::move_backward(), ranges::reverse(), ranges::reverse_copy(), ranges::rotate(), and ranges::sample().
|
constexpr |
#include <range/v3/iterator/operations.hpp>
prev_fn