Core range functionality.
|
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::common_range_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< common_range< Rng >, common_range_tag, range_tag > > |
|
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_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< contiguous_range< Rng >, contiguous_range_tag, meta::conditional_t< random_access_range< Rng >, random_access_range_tag, meta::conditional_t< bidirectional_range< Rng >, bidirectional_range_tag, meta::conditional_t< forward_range< Rng >, forward_range_tag, meta::conditional_t< input_range< Rng >, input_range_tag, range_tag > >> >> > |
|
template<typename Rng > |
using | ranges::range_value_t = iter_value_t< iterator_t< Rng > > |
|
template<typename Rng > |
using | ranges::sized_range_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< sized_range< Rng >, sized_range_tag, range_tag > > |
|
|
template<typename Cont , typename Rng > |
CPP_TEMPLATE_AUX_0 | ranges::a (requires ` range< Rng > &&detail::convertible_to_cont< Rng, Cont >) aaauto 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.
|
|
template<template< typename... > class ContT, typename Rng > |
CPP_TEMPLATE_AUX_0 | ranges::a (requires ` range< Rng > &&detail::convertible_to_cont< Rng, ContT< range_value_t< Rng >>>) aaauto to(Rng &&rng) -> ContT< range_value_t< Rng >> |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
concept() | ranges::bidirectional_range_ (T) |
|
concept() | ranges::common_range_ (T) |
|
concept() | ranges::container_ (T) |
|
concept() | ranges::contiguous_range_ (T) |
|
concept() | ranges::forward_range_ (T) |
|
concept() | ranges::input_range_ (T) |
|
concept() | ranges::lvalue_container_like_ (T) |
|
concept() | ranges::output_range_ (T, V) |
|
concept() | ranges::random_access_range_ (T) |
|
concept() | ranges::sized_range_ (T) |
|
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. More...
|
|
|
template<typename T > |
concept | ranges::_range__requires_ = CPP_REQUIRES_requires ` (T & t) ( ranges::begin(t), ranges::end(t) ) |
| Range concepts below.
|
|
constexpr at_fn | ranges::at {} |
| Checked indexed range access. More...
|
|
constexpr back_fn | ranges::back {} |
|
constexpr _begin_::fn | ranges::begin {} |
|
concept() | ranges::bidirectional_iterator< iterator_t< T > > |
|
template<typename T > |
concept | ranges::bidirectional_range |
|
template<typename T > |
concept | ranges::borrowed_range |
|
constexpr _cbegin_::fn | ranges::cbegin {} |
|
constexpr _cdata_::fn | ranges::cdata {} |
|
constexpr _cend_::fn | ranges::cend {} |
|
template<typename T > |
concept | ranges::common_range |
|
template<typename T > |
concept | ranges::container |
|
template<typename T > |
concept | ranges::contiguous_range |
|
template<typename T > |
| ranges::CPP_TEMPLATE_AUX_1 |
|
constexpr _crbegin_::fn | ranges::crbegin {} |
|
constexpr _crend_::fn | ranges::crend {} |
|
constexpr _empty_::fn | ranges::empty {} |
|
template<typename T > |
constexpr bool | ranges::enable_view |
|
constexpr _end_::fn | ranges::end {} |
|
template<typename Rng , typename I , typename S > |
concept | ranges::erasable_range |
|
template<typename Rng , typename I , typename S > |
concept | ranges::erasable_range__requires_ = CPP_REQUIRES_requires ` (Rng && rng, I first, S last) ( ranges::erase((Rng &&) rng, first, last) ) |
|
concept() | ranges::forward_iterator< iterator_t< T > > |
|
template<typename T > |
concept | ranges::forward_range |
|
constexpr front_fn | ranges::front {} |
|
constexpr index_fn | ranges::index {} |
| Unchecked indexed range access. More...
|
|
concept() | ranges::input_iterator< iterator_t< T > > |
|
template<typename T > |
concept | ranges::input_range |
|
template<typename T > |
concept | ranges::lvalue_container_like |
|
concept() | ranges::output_iterator< iterator_t< T >, V > |
|
template<typename T , typename V > |
concept | ranges::output_range |
|
concept() | ranges::random_access_iterator< iterator_t< T > > |
|
template<typename T > |
concept | ranges::random_access_range |
|
template<typename C > |
concept | ranges::random_access_reservable |
|
template<typename T > |
concept | ranges::range |
|
constexpr _rbegin_::fn | ranges::rbegin {} |
|
constexpr _rend_::fn | ranges::rend {} |
|
template<typename C > |
concept | ranges::reservable |
|
template<typename C > |
concept | ranges::reservable__requires_ = CPP_REQUIRES_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 > |
concept | ranges::reservable_with_assign |
|
template<typename C , typename I > |
concept | ranges::reservable_with_assign__requires_ = CPP_REQUIRES_requires ` (C & c, I i) ( c.assign(i, i) ) |
|
template<typename R > |
constexpr bool | ranges::safe_range = borrowed_range<R> |
|
concept() | ranges::same_as< iterator_t< T >, sentinel_t< T > > |
|
template<typename T > |
concept | ranges::semi_container |
|
constexpr _size_::fn | ranges::size {} |
|
template<typename T > |
concept | ranges::sized_range |
|
template<typename T > |
concept | ranges::sized_range__requires_ = CPP_REQUIRES_requires ` (T & t) ( ranges::size(t) ) |
|
constexpr detail::to_container_fn< detail::from_range< std::vector > > | ranges::to_vector {} |
|
template<typename T > |
concept | ranges::view_ |
| View concepts below. More...
|
|
template<typename T > |
concept | ranges::viewable_range |
|
template<template< typename... > class ContT>
auto ranges::to |
( |
| ) |
-> detail::to_container_fn<detail::from_range<ContT>>
|
#include <range/v3/range/conversion.hpp>
For initializing a container of the specified type with the elements of an Range.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.