Core range functionality.
More...
|
template<typename Rng > |
using | ranges::iterator_t = decltype(begin(declval(Rng &))) |
|
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_difference_t = iter_difference_t< iterator_t< Rng > > |
|
template<typename Rng > |
using | ranges::range_value_t = iter_value_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_common_reference_t = iter_common_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_common_iterator_t = common_iterator_t< iterator_t< Rng >, sentinel_t< Rng > > |
|
|
| ranges::template (typename T)(concept(container_)(T) |
|
template<typename C > |
| ranges::CPP_requires (reservable_, requires(C &c, C const &cc)(c.reserve(ranges::size(c)), cc.capacity(), cc.max_size(), concepts::requires_< same_as< decltype(cc.capacity()), decltype(ranges::size(c))> >, concepts::requires_< same_as< decltype(cc.max_size()), decltype(ranges::size(c))> >)) |
|
template<typename C , typename I > |
| ranges::CPP_requires (reservable_with_assign_, requires(C &c, I i)(c.assign(i, i))) |
|
template<typename Rng , typename I , typename S > |
| ranges::CPP_requires (erasable_range_, requires(Rng &&rng, I first, S last)(ranges::erase((Rng &&) rng, first, last))) |
|
| ranges::RANGES_INLINE_VARIABLE (detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail |
| For initializing a container of the specified type with the elements of an Range.
|
|
Core range functionality.
◆ iterator_t
- 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.
- 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.
- Parameters
-
- Returns
- The result of calling
ranges::begin
with a const-qualified reference to r.
- Parameters
-
- Returns
- The result of calling
ranges::end
with a const-qualified reference to r.
- 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
.
- 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
.
- Parameters
-
- Returns
- The result of calling
ranges::rbegin
with a const-qualified reference to r.
- Parameters
-
- Returns
- The result of calling
ranges::rend
with a const-qualified reference to r.
◆ container
Initial value:=
The container_ concept std::vector is a container, std::array is not.
The semi_container concept std::array is a semi_container, native arrays are not.
◆ erasable_range
template<typename Rng , typename I , typename S >
Initial value:=
The erasable_range_ concept.
◆ lvalue_container_like
Initial value:=
The forward_range concept.
The lvalue_container_like_ concept.
◆ random_access_reservable
Initial value:=
The random_access_range concept.
◆ reservable
◆ reservable_with_assign
template<typename C , typename I >
Initial value:=
The reservable_with_assign_ concept.
◆ semi_container
Initial value:=
movable<uncvref_t<T>> &&