![]() |
VCCC
2024.05
VisualCamp Common C++ library
|
Ranges library. More...
Modules | |
ranges::to | |
constructs a new non-view object from an input range | |
ranges::cartesian_product_view, views::cartesian_product | |
a view consisting of tuples of results calculated by the n-ary cartesian product of the adapted views | |
ranges::empty_view, views::empty | |
an empty view with no elements | |
ranges::iota_view, views::iota | |
a view consisting of a sequence generated by repeatedly incrementing an initial value | |
ranges::keys_view, views::keys | |
takes a view consisting of tuple-like values and produces a view of the first elements of each pair | |
ranges::single_view, views::single | |
a view that contains a single element of a specified value | |
ranges::values_view, views::values | |
takes a view consisting of tuple-like values and produces a view of the second elements of each tuple | |
Typedefs | |
template<class I1 , class I2 , class O > | |
using | set_intersection_result = ranges::in_in_out_result< I1, I2, O > |
template<typename R > | |
using | borrowed_iterator_t = typename borrowed_iterator< R >::type |
template<typename R > | |
using | borrowed_subrange_t = typename borrowed_subrange< R >::type |
template<typename T > | |
using | const_iterator_t = typename const_iterator< T >::type |
template<typename R > | |
using | const_sentinel_t = typename const_sentinel< R >::type |
template<typename T > | |
using | iterator_t = typename ranges::iterator< T >::type |
template<typename R > | |
using | range_const_reference_t = typename range_const_reference< R >::type |
Used to obtain the reference type of the iterator type of range type R. More... | |
template<typename R > | |
using | range_difference_t = typename range_difference< R >::type |
Used to obtain the difference type of the iterator type of range type R . More... | |
template<typename R > | |
using | range_key_t = typename range_key< R >::type |
template<typename R > | |
using | range_mapped_t = typename range_mapped< R >::type |
template<typename R > | |
using | range_reference_t = typename range_reference< R >::type |
Used to obtain the reference type of the iterator type of range type R. More... | |
template<typename R > | |
using | range_rvalue_reference_t = typename range_rvalue_reference< R >::type |
Used to obtain the rvalue reference type of the iterator type of range type R . More... | |
template<typename R > | |
using | range_size_t = typename range_size< R >::type |
Used to obtain the size type of the sized_range type R. More... | |
template<typename R > | |
using | range_value_t = typename range_value< R >::type |
Used to obtain the value type of the iterator type of range type R. More... | |
template<typename R > | |
using | sentinel_t = typename sentinel< R >::type |
template<typename R > | |
using | all_t = typename detail::all_t_impl< R >::type |
Calculates the suitable view type of a viewable_range type. More... | |
template<typename Val > | |
using | istream_view = basic_istream_view< Val, char > |
template<typename Val > | |
using | wistream_view = basic_istream_view< Val, wchar_t > |
using | iterator_category = input_iterator_tag |
using | iterator_concept = std::conditional_t< conjunction< random_access_range< Rngs >... >::value, random_access_iterator_tag, std::conditional_t< conjunction< bidirectional_range< Rngs >... >::value, bidirectional_iterator_tag, std::conditional_t< conjunction< forward_range< Rngs >... >::value, forward_iterator_tag, input_iterator_tag > >> |
using | value_type = common_type_t< range_value_t< maybe_const< IsConst, Rngs > >... > |
using | difference_type = common_type_t< range_difference_t< Rngs >... > |
using | reference = common_reference_t< range_reference_t< maybe_const< IsConst, Rngs > >... > |
using | pointer = void |
using | iterator_category = input_iterator_tag |
using | iterator_concept = std::conditional_t< conjunction< random_access_range< Rngs >... >::value, random_access_iterator_tag, std::conditional_t< conjunction< bidirectional_range< Rngs >... >::value, bidirectional_iterator_tag, std::conditional_t< conjunction< forward_range< Rngs >... >::value, forward_iterator_tag, input_iterator_tag > >> |
using | value_type = common_type_t< range_value_t< maybe_const< IsConst, Rngs > >... > |
using | difference_type = common_type_t< range_difference_t< Rngs >... > |
using | reference = common_reference_t< range_reference_t< maybe_const< IsConst, Rngs > >... > |
using | pointer = void |
Enumerations | |
enum class | subrange_kind : bool { unsized , sized } |
Functions | |
template<typename T > | |
constexpr auto | as_const_pointer (const T *p) noexcept |
template<typename R , std::enable_if_t< input_range< R >::value, int > = 0> | |
constexpr auto & | possibly_const_range (R &r) noexcept |
template<typename I , typename S , std::enable_if_t< conjunction< input_or_output_iterator< I >, sentinel_for< S, I >>::value, int > = 0> | |
constexpr subrange< I, S > | make_subrange (I i, S s) |
template<typename I , typename S , std::enable_if_t< conjunction< input_or_output_iterator< I >, sentinel_for< S, I >>::value, int > = 0> | |
constexpr subrange< I, S, subrange_kind::sized > | make_subrange (I i, S s, detail::make_unsigned_like_t< iter_difference_t< I >> n) |
template<typename R , std::enable_if_t< borrowed_range< R >::value, int > = 0> | |
constexpr subrange< iterator_t< R >, sentinel_t< R >,(sized_range< R >::value||sized_sentinel_for< sentinel_t< R >, iterator_t< R >>::value) ? subrange_kind::sized :subrange_kind::unsized > | make_subrange (R &&r) |
template<typename R , std::enable_if_t< borrowed_range< R >::value, int > = 0> | |
constexpr subrange< iterator_t< R >, sentinel_t< R >, subrange_kind::sized > | make_subrange (R &&r, detail::make_unsigned_like_t< range_difference_t< R >> n) |
template<std::size_t N, typename I , typename S , subrange_kind K, std::enable_if_t<((N==0 &©able< I >::value)||N==1), int > = 0> | |
constexpr auto | get (const subrange< I, S, K > &r) |
template<std::size_t N, typename I , typename S , subrange_kind K, std::enable_if_t<(N< 2), int > = 0> | |
constexpr auto | get (subrange< I, S, K > &&r) |
template<typename R , std::enable_if_t< viewable_range< R >::value, int > = 0> | |
constexpr common_view< views::all_t< R > > | make_common_view (R &&r) |
sentinel ()=default | |
template<bool AntiConst, std::enable_if_t< conjunction< bool_constant<((Const !=AntiConst) &&Const)>, convertible_to< sentinel_t< BackBase >, sentinel_t< Base >> >::value, int > = 0> | |
constexpr | sentinel (sentinel< AntiConst > that) |
template<typename I , std::size_t N> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
template<typename I > | |
void | operator() (I &it, in_place_index_t< 0 >) |
template<typename I , std::size_t N, std::enable_if_t< conjunction< bool_constant<(N !=0)>, bidirectional_iterator< I > >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
template<typename I , std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< cranges - 1 >) |
template<typename I , std::size_t N, std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
template<typename I , std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< 0 >) |
template<typename I , std::size_t N, std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
iterator ()=default | |
template<std::size_t I, typename It > | |
constexpr | iterator (Parent *parent, in_place_index_t< I >, It &&it) |
template<bool Other, std::enable_if_t< conjunction< bool_constant<(Other !=IsConst &&IsConst)> >::value, int > = 0> | |
constexpr | iterator (iterator< Other > that) |
constexpr decltype(auto) | operator* () const |
constexpr bool | equal (const sentinel< IsConst > &pos) const |
constexpr iterator & | operator++ () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, negation< forward_range< Rngs >>... >::value, int > = 0> | |
constexpr void | operator++ (int) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, bidirectional_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator-- () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, bidirectional_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator-- (int) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, random_access_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator+= (difference_type n) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, random_access_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator-= (difference_type n) |
concat_view ()=default | |
concat_view (Rngs... rngs) | |
constexpr auto | begin () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, range< const Rngs >... >::value, int > = 0> | |
constexpr iterator< true > | begin () const |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, common_range< Rngs >... >::value, int > = 0> | |
constexpr auto | end () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, range< const Rngs >... >::value, int > = 0> | |
constexpr auto | end () const |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_range< Rngs >... >::value, int > = 0> | |
constexpr auto | size () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_range< const Rngs >... >::value, int > = 0> | |
constexpr auto | size () const |
sentinel ()=default | |
template<bool AntiConst, std::enable_if_t< conjunction< bool_constant<((Const !=AntiConst) &&Const)>, convertible_to< sentinel_t< BackBase >, sentinel_t< Base >> >::value, int > = 0> | |
constexpr | sentinel (sentinel< AntiConst > that) |
template<typename I , std::size_t N> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
template<typename I > | |
void | operator() (I &it, in_place_index_t< 0 >) |
template<typename I , std::size_t N, std::enable_if_t< conjunction< bool_constant<(N !=0)>, bidirectional_iterator< I > >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
template<typename I , std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< cranges - 1 >) |
template<typename I , std::size_t N, std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
template<typename I , std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< 0 >) |
template<typename I , std::size_t N, std::enable_if_t< random_access_iterator< I >::value, int > = 0> | |
void | operator() (I &it, in_place_index_t< N >) |
template<typename U > | |
void | operator() (U &, in_place_index_t< variant_npos >) |
iterator ()=default | |
template<std::size_t I, typename It > | |
constexpr | iterator (Parent *parent, in_place_index_t< I >, It &&it) |
template<bool Other, std::enable_if_t< conjunction< bool_constant<(Other !=IsConst &&IsConst)> >::value, int > = 0> | |
constexpr | iterator (iterator< Other > that) |
constexpr decltype(auto) | operator* () const |
constexpr bool | equal (const sentinel< IsConst > &pos) const |
constexpr iterator & | operator++ () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, negation< forward_range< Rngs >>... >::value, int > = 0> | |
constexpr void | operator++ (int) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, bidirectional_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator-- () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, bidirectional_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator-- (int) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, random_access_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator+= (difference_type n) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, random_access_range< Rngs >... >::value, int > = 0> | |
constexpr iterator & | operator-= (difference_type n) |
concat_with_view ()=default | |
concat_with_view (Rngs... rngs) | |
constexpr auto | begin () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, range< const Rngs >... >::value, int > = 0> | |
constexpr iterator< true > | begin () const |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, common_range< Rngs >... >::value, int > = 0> | |
constexpr auto | end () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, range< const Rngs >... >::value, int > = 0> | |
constexpr auto | end () const |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_range< Rngs >... >::value, int > = 0> | |
constexpr auto | size () |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_range< const Rngs >... >::value, int > = 0> | |
constexpr auto | size () const |
template<typename R > | |
constexpr drop_view< views::all_t< R > > | make_drop_view (R &&r, range_difference_t< R > count) |
template<typename R , typename Pred , std::enable_if_t< conjunction< has_typename_type< views::detail::all_t_impl< R >>, std::is_object< Pred >>::value, int > = 0> | |
constexpr auto | make_drop_while_view (R &&r, Pred &&pred) |
template<typename R > | |
constexpr reverse_view< views::all_t< R > > | make_reverse_view (R &&r) |
template<typename R , typename P > | |
constexpr auto | make_split_view (R &&r, P &&pattern) |
template<typename R > | |
constexpr take_view< views::all_t< R > > | make_take_view (R &&r, range_difference_t< R > count) |
template<typename R , typename F , std::enable_if_t< conjunction< input_range< views::all_t< R >>, copy_constructible< F >, std::is_object< F >, regular_invocable< F &, range_reference_t< views::all_t< R >>>>::value, int > = 0> | |
constexpr transform_view< views::all_t< R >, F > | make_transform_view (R &&r, F f) |
Friends | |
struct | sentinel<!Const > |
struct | iterator< Const > |
struct | concat_view |
struct | iterator<!IsConst > |
struct | sentinel<!Const > |
struct | iterator< Const > |
class | concat_with_view |
struct | iterator<!IsConst > |
template<typename V = variant<iterator_t<maybe_const<IsConst, Rngs>>...>, std::enable_if_t< equality_comparable< V > ::value, int > = 0> | |
constexpr friend bool | operator== (const iterator &x, const iterator &y) |
template<typename V = variant<iterator_t<maybe_const<IsConst, Rngs>>...>, std::enable_if_t< equality_comparable< V > ::value, int > = 0> | |
constexpr friend bool | operator!= (const iterator &x, const iterator &y) |
constexpr friend bool | operator== (const iterator &x, const sentinel< IsConst > &y) |
constexpr friend bool | operator!= (const iterator &x, const sentinel< IsConst > &y) |
constexpr friend bool | operator== (const sentinel< IsConst > &y, const iterator &x) |
constexpr friend bool | operator!= (const sentinel< IsConst > &y, const iterator &x) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_sentinel_for< iterator_t< Rngs >, iterator_t< Rngs >>... >::value, int > = 0> | |
constexpr friend difference_type | operator- (const iterator &x, const iterator &y) |
template<typename V = variant<iterator_t<maybe_const<IsConst, Rngs>>...>, std::enable_if_t< equality_comparable< V > ::value, int > = 0> | |
constexpr friend bool | operator== (const iterator &x, const iterator &y) |
template<typename V = variant<iterator_t<maybe_const<IsConst, Rngs>>...>, std::enable_if_t< equality_comparable< V > ::value, int > = 0> | |
constexpr friend bool | operator!= (const iterator &x, const iterator &y) |
constexpr friend bool | operator== (const iterator &x, const sentinel< IsConst > &y) |
constexpr friend bool | operator!= (const iterator &x, const sentinel< IsConst > &y) |
constexpr friend bool | operator== (const sentinel< IsConst > &y, const iterator &x) |
constexpr friend bool | operator!= (const sentinel< IsConst > &y, const iterator &x) |
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_sentinel_for< iterator_t< Rngs >, iterator_t< Rngs >>... >::value, int > = 0> | |
constexpr friend difference_type | operator- (const iterator &x, const iterator &y) |
using all_t = typename detail::all_t_impl<R>::type |
using borrowed_iterator_t = typename borrowed_iterator<R>::type |
using borrowed_subrange_t = typename borrowed_subrange<R>::type |
using const_iterator_t = typename const_iterator<T>::type |
using const_sentinel_t = typename const_sentinel<R>::type |
using difference_type = common_type_t<range_difference_t<Rngs>...> |
using difference_type = common_type_t<range_difference_t<Rngs>...> |
using istream_view = basic_istream_view<Val, char> |
using iterator_category = input_iterator_tag |
using iterator_category = input_iterator_tag |
using iterator_concept = std::conditional_t< conjunction<random_access_range<Rngs>...>::value, random_access_iterator_tag, std::conditional_t< conjunction<bidirectional_range<Rngs>...>::value, bidirectional_iterator_tag, std::conditional_t< conjunction<forward_range<Rngs>...>::value, forward_iterator_tag, input_iterator_tag > >> |
using iterator_concept = std::conditional_t< conjunction<random_access_range<Rngs>...>::value, random_access_iterator_tag, std::conditional_t< conjunction<bidirectional_range<Rngs>...>::value, bidirectional_iterator_tag, std::conditional_t< conjunction<forward_range<Rngs>...>::value, forward_iterator_tag, input_iterator_tag > >> |
using iterator_t = typename ranges::iterator<T>::type |
using pointer = void |
using pointer = void |
using range_const_reference_t = typename range_const_reference<R>::type |
using range_difference_t = typename range_difference<R>::type |
using range_key_t = typename range_key<R>::type |
using range_mapped_t = typename range_mapped<R>::type |
using range_reference_t = typename range_reference<R>::type |
using range_rvalue_reference_t = typename range_rvalue_reference<R>::type |
using range_size_t = typename range_size<R>::type |
using range_value_t = typename range_value<R>::type |
using reference = common_reference_t<range_reference_t<maybe_const<IsConst, Rngs> >...> |
using reference = common_reference_t<range_reference_t<maybe_const<IsConst, Rngs> >...> |
using sentinel_t = typename sentinel<R>::type |
using set_intersection_result = ranges::in_in_out_result<I1, I2, O> |
using value_type = common_type_t<range_value_t<maybe_const<IsConst, Rngs> >...> |
using value_type = common_type_t<range_value_t<maybe_const<IsConst, Rngs> >...> |
using wistream_view = basic_istream_view<Val, wchar_t> |
|
strong |
|
default |
|
inlineexplicit |
|
default |
|
inlineexplicit |
|
default |
|
default |
|
inlineconstexpr |
|
inlineconstexpr |
|
default |
|
default |
|
constexprnoexcept |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexprnoexcept |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexpr |
A RangeAdaptorObject (also a RangeAdaptorClosureObject) that returns a view that includes all elements of its range argument.
|
constexpr |
|
constexpr |
Returns an iterator to the first element of the argument.
|
constexpr |
Returns an iterator to the first element of the argument.
|
constexpr |
|
constexpr |
Returns a sentinel for the constant iterator indicating the end of a range.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
A counted view presents a view of the elements of the counted range [i, n) for some iterator i and non-negative integer n. A counted range [i, n) is the n elements starting with the element pointed to by i and up to but not including the element, if any, pointed to by the result of n applications of ++i
. If n == 0
, the counted range is valid and empty. Otherwise, the counted range is only valid if n is positive, i is dereferenceable, and [++i
, --n
) is a valid counted range.
|
constexpr |
|
constexpr |
|
constexpr |
Returns a pointer to the first element of a contiguous range.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
Determines whether or not t
has any elements.
|
constexpr |
Returns a sentinel indicating the end of a range.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
iterator* pos |
iterator* pos |
iterator* pos |
iterator* pos |
iterator* pos |
iterator* pos |
iterator* pos |
iterator* pos |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
Calculates the number of elements in t
in constant time.
|
constexpr |
|
constexpr |
Returns the size of a range converted to a signed type.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |