|
Horizon
|
Core range functionality. More...
Modules | |
| Range Concepts | |
| Range concepts. | |
Classes | |
| struct | ranges::dangling |
| A placeholder for an iterator or a sentinel into a range that may no longer be valid. More... | |
| struct | ranges::at_fn |
| Checked indexed range access. More... | |
| struct | ranges::index_fn |
| Checked indexed range access. More... | |
| struct | ranges::back_fn |
| Unchecked indexed range access. More... | |
| struct | ranges::front_fn |
| struct | ranges::range_cardinality< Rng, Void > |
Typedefs | |
| 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 > > |
Functions | |
| ranges::template (typename T)(concept(container_)(T) | |
| \concept container_ More... | |
| 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))>>)) | |
| \concept reservable_ More... | |
| template<typename C , typename I > | |
| ranges::CPP_requires (reservable_with_assign_, requires(C &c, I i)(c.assign(i, i))) | |
| \concept reservable_with_assign_ More... | |
| 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))) | |
| \concept erasable_range_ More... | |
| 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. | |
Variables | |
| template<typename T > | |
| CPP_concept | ranges::semi_container |
| \concept semi_container More... | |
| template<typename T > | |
| CPP_concept | ranges::container |
| \concept container More... | |
| template<typename C > | |
| CPP_concept | ranges::reservable |
| \concept reservable More... | |
| template<typename C , typename I > | |
| CPP_concept | ranges::reservable_with_assign |
| \concept reservable_with_assign More... | |
| template<typename C > | |
| CPP_concept | ranges::random_access_reservable |
| \concept random_access_reservable More... | |
| template<typename T > | |
| CPP_concept | ranges::lvalue_container_like |
| \concept lvalue_container_like More... | |
| template<typename Rng , typename I , typename S > | |
| CPP_concept | ranges::erasable_range |
| \concept erasable_range More... | |
Core range functionality.
| using ranges::iterator_t = typedef decltype(begin(declval(Rng &))) |
| r |
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.| r |
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.| r |
ranges::begin with a const-qualified reference to r.| r |
ranges::end with a const-qualified reference to r.| r |
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.| r |
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.| r |
ranges::rbegin with a const-qualified reference to r.| r |
ranges::rend with a const-qualified reference to r. | ranges::CPP_requires | ( | erasable_range_ | , |
| requires(Rng &&rng, I first, S last)(ranges::erase((Rng &&) rng, first, last)) | |||
| ) |
\concept erasable_range_
The erasable_range_ concept
| 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))>>) | |||
| ) |
\concept reservable_
The reservable_ concept
| ranges::CPP_requires | ( | reservable_with_assign_ | , |
| requires(C &c, I i)(c.assign(i, i)) | |||
| ) |
\concept reservable_with_assign_
The reservable_with_assign_ concept
|
noexcept |
\concept container_
\concept sized_range_
\concept common_range_
\concept contiguous_range_
\concept random_access_range_
\concept bidirectional_range_
\concept forward_range_
\concept input_range_
\concept lvalue_container_like_
The container_ concept std::vector is a container, std::array is not
The lvalue_container_like_ concept
The input_range_ concept
The forward_range_ concept
The bidirectional_range_ concept
The random_access_range_ concept
The contiguous_range_ concept
The common_range_ concept
The sized_range_ concept
| CPP_concept ranges::container |
\concept container
The container concept
| CPP_concept ranges::erasable_range |
\concept erasable_range
The erasable_range concept
| CPP_concept ranges::lvalue_container_like |
\concept lvalue_container_like
The lvalue_container_like concept
| CPP_concept ranges::random_access_reservable |
\concept random_access_reservable
The random_access_reservable concept
| CPP_concept ranges::reservable |
\concept reservable
The reservable concept
| CPP_concept ranges::reservable_with_assign |
\concept reservable_with_assign
The reservable_with_assign concept
| CPP_concept ranges::semi_container |
\concept semi_container
The semi_container concept std::array is a semi_container, native arrays are not.