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 |
|
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.
◆ common_iterator_t
template<typename I, typename S>
| using ranges::common_iterator_t |
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
◆ 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
template<typename T>
| CPP_concept ranges::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>
| CPP_concept ranges::erasable_range |
Initial value:=
The erasable_range_ concept.
◆ lvalue_container_like
template<typename T>
| CPP_concept ranges::lvalue_container_like |
Initial value:=
The forward_range concept.
The lvalue_container_like_ concept.
◆ random_access_reservable
template<typename C>
| CPP_concept ranges::random_access_reservable |
Initial value:=
The random_access_range concept.
◆ reservable
template<typename C>
| CPP_concept ranges::reservable |
◆ reservable_with_assign
template<typename C, typename I>
| CPP_concept ranges::reservable_with_assign |
Initial value:=
The reservable_with_assign_ concept.
◆ semi_container
template<typename T>
| CPP_concept ranges::semi_container |
Initial value:=
movable<uncvref_t<T>> &&