Core range functionality
More...
|
template<typename I , typename S > |
using | ranges::common_iterator_t |
|
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
◆ common_iterator_t
template<typename I , typename S >
using ranges::common_iterator_t |
#include <range/v3/range/traits.hpp>
Initial value:
detail::common_iterator_impl_t<I, S>>
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
◆ to()
template<template< typename... > class ContT>
auto ranges::to |
( |
| ) |
-> detail::to_container_fn<detail::from_range<ContT>>
|
◆ at
◆ back
◆ begin
_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::view_interface< Derived, Cardinality >::empty(), ranges::fill(), ranges::generate(), ranges::move(), ranges::move_backward(), ranges::at_fn::operator()(), ranges::reverse(), ranges::reverse_copy(), ranges::rotate(), ranges::rotate_copy(), and ranges::sample().
◆ cbegin
_cbegin_::fn ranges::cbegin {} |
|
constexpr |
◆ cdata
_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
_cend_::fn ranges::cend {} |
|
constexpr |
◆ crbegin
_crbegin_::fn ranges::crbegin {} |
|
constexpr |
◆ crend
_crend_::fn ranges::crend {} |
|
constexpr |
◆ empty
_empty_::fn ranges::empty {} |
|
constexpr |
◆ end
#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::view_interface< Derived, Cardinality >::empty(), ranges::fill(), ranges::generate(), ranges::move(), ranges::move_backward(), ranges::back_fn::operator()(), ranges::reverse(), ranges::reverse_copy(), ranges::rotate(), and ranges::rotate_copy().
◆ front
◆ index
◆ rbegin
_rbegin_::fn ranges::rbegin {} |
|
constexpr |
◆ rend
_rend_::fn ranges::rend {} |
|
constexpr |
◆ size
_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.
Referenced by ranges::view_interface< Derived, Cardinality >::empty().