Core range functionality.
More...
|
|
template<typename I , typename S > |
| using | ranges::common_iterator_t = meta::conditional_t< std::is_same< I, S >::value, I, detail::common_iterator_impl_t< I, S > > |
| |
|
template<typename Rng > |
| using | ranges::range_common_iterator_t = common_iterator_t< iterator_t< Rng >, sentinel_t< Rng > > |
| |
|
template<typename Rng > |
| using | ranges::range_common_reference_t = iter_common_reference_t< iterator_t< Rng > > |
| |
|
template<typename Rng > |
| using | ranges::range_difference_t = iter_difference_t< iterator_t< Rng > > |
| |
|
template<typename Rng > |
| using | ranges::range_reference_t = iter_reference_t< iterator_t< Rng > > |
| |
|
template<typename Rng > |
| using | ranges::range_rvalue_reference_t = iter_rvalue_reference_t< iterator_t< Rng > > |
| |
|
template<typename Rng > |
| using | ranges::range_size_t = decltype(ranges::size(std::declval< Rng & >())) |
| |
|
template<typename Rng > |
| using | ranges::range_value_t = iter_value_t< iterator_t< Rng > > |
| |
|
| template<template< typename... > class ContT> |
| auto | ranges::to () -> detail::to_container_fn< detail::from_range< ContT > > |
| | For initializing a container of the specified type with the elements of an Range.
|
| |
template<template< typename... > class ContT, typename Rng , typename C = meta::invoke<detail::from_range<ContT>, Rng>>
requires range<Rng> && detail::convertible_to_cont<Rng, C> |
| auto | ranges::to (Rng &&rng) -> C |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
template<typename Cont , typename Rng >
requires range<Rng> && detail::convertible_to_cont<Rng, Cont> |
| auto | ranges::to (Rng &&rng) -> Cont |
| | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
| |
Core range functionality.
◆ to()
template<template< typename... > class ContT>
| auto ranges::to |
( |
| ) |
-> detail::to_container_fn<detail::from_range<ContT>>
|
◆ at
| constexpr at_fn ranges::at {} |
|
constexpr |
◆ back
◆ begin
| constexpr _begin_::fn ranges::begin {} |
|
constexpr |
#include <range/v3/range/access.hpp>
- Parameters
-
- Returns
r, if r is an array. Otherwise, r.begin() if that expression is well-formed and returns an input_or_output_iterator. Otherwise, begin(r) if that expression returns an input_or_output_iterator.
Referenced by ranges::copy(), ranges::copy_backward(), ranges::fill(), ranges::generate(), ranges::move(), ranges::move_backward(), ranges::front_fn::operator()(), ranges::index_fn::operator()(), ranges::at_fn::operator()(), ranges::reverse(), ranges::reverse_copy(), ranges::rotate(), ranges::rotate_copy(), ranges::sample(), ranges::sample(), ranges::sample(), and ranges::shuffle().
◆ cbegin
| constexpr _cbegin_::fn ranges::cbegin {} |
|
constexpr |
◆ cdata
| constexpr _cdata_::fn ranges::cdata {} |
|
constexpr |
#include <range/v3/range/primitives.hpp>
- Parameters
-
- Returns
- The result of calling
ranges::data with a const-qualified (lvalue or rvalue) reference to r.
◆ cend
| constexpr _cend_::fn ranges::cend {} |
|
constexpr |
◆ crbegin
| constexpr _crbegin_::fn ranges::crbegin {} |
|
constexpr |
◆ crend
| constexpr _crend_::fn ranges::crend {} |
|
constexpr |
◆ empty
| constexpr _empty_::fn ranges::empty {} |
|
constexpr |
◆ end
| constexpr _end_::fn ranges::end {} |
|
constexpr |
#include <range/v3/range/access.hpp>
- Parameters
-
- Returns
r+size(r), if r is an array. Otherwise, r.end() if that expression is well-formed and returns an input_or_output_iterator. Otherwise, end(r) if that expression returns an input_or_output_iterator.
Referenced by ranges::copy(), ranges::copy_backward(), ranges::fill(), ranges::generate(), ranges::move(), ranges::move_backward(), ranges::back_fn::operator()(), ranges::reverse(), ranges::reverse_copy(), ranges::rotate(), ranges::rotate_copy(), ranges::sample(), ranges::sample(), and ranges::shuffle().
◆ front
◆ index
◆ rbegin
| constexpr _rbegin_::fn ranges::rbegin {} |
|
constexpr |
#include <range/v3/range/access.hpp>
- Parameters
-
- Returns
make_reverse_iterator(r + ranges::size(r)) if r is an array. Otherwise, r.rbegin() if that expression is well-formed and returns an input_or_output_iterator. Otherwise, make_reverse_iterator(ranges::end(r)) if ranges::begin(r) and ranges::end(r) are both well-formed and have the same type that satisfies bidirectional_iterator.
◆ rend
| constexpr _rend_::fn ranges::rend {} |
|
constexpr |
#include <range/v3/range/access.hpp>
- Parameters
-
- Returns
make_reverse_iterator(r) if r is an array. Otherwise, r.rend() if that expression is well-formed and returns a type that satisfies sentinel_for<S, I> where I is the type of ranges::rbegin(r). Otherwise, make_reverse_iterator(ranges::begin(r)) if ranges::begin(r) and ranges::end(r) are both well-formed and have the same type that satisfies bidirectional_iterator.
◆ size
| constexpr _size_::fn ranges::size {} |
|
constexpr |
#include <range/v3/range/primitives.hpp>
- Returns
- For a given expression
E of type T, ranges::size(E) is equivalent to:
+extent_v<T> if T is an array type.
- Otherwise,
+E.size() if it is a valid expression and its type I models integral and disable_sized_range<std::remove_cvref_t<T>> is false.
- Otherwise,
+size(E) if it is a valid expression and its type I models integral with overload resolution performed in a context that includes the declaration: template<
class T>
void size(T&&) =
delete;
constexpr _size_::fn size
Definition primitives.hpp:186
and does not include a declaration of ranges::size, and disable_sized_range<std::remove_cvref_t<T>> is false.
- Otherwise,
static_cast<U>(ranges::end(E) - ranges::begin(E)) where U is std::make_unsigned_t<iter_difference_t<iterator_t<T>>> if iter_difference_t<iterator_t<T>> satisfies integral and iter_difference_t<iterator_t<T>> otherwise; except that E is evaluated once, if it is a valid expression and the types I and S of ranges::begin(E) and ranges::end(E) model sized_sentinel_for<S, I> and forward_iterator<I>.
- Otherwise,
ranges::size(E) is ill-formed.