|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::AsymmetricallyComparable = meta::strict_and< InputIterator< I1 >, InputIterator< I2 >, IndirectPredicate< C, projected< I1, P1 >, projected< I2, P2 > >> |
|
template<typename I > |
using | ranges::v3::BidirectionalIterator = concepts::models< concepts::BidirectionalIterator, I > |
|
template<typename I , typename V2 , typename C = ordered_less, typename P = ident> |
using | ranges::v3::BinarySearchable = meta::strict_and< ForwardIterator< I >, IndirectRelation< C, projected< I, P >, V2 const * > > |
|
template<typename C , typename ... Is> |
using | ranges::v3::detail::common_result_indirect_invocable_ = meta::and_< indirect_invocable_< Invocable, C, Is... >, meta::lazy::invoke< iter_map_reduce_fn_< meta::bind_front< meta::quote< concepts::Invocable::result_t >, C & >, meta::quote< CommonReference > >, Is... > > |
|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::Comparable = meta::strict_and< AsymmetricallyComparable< I1, I2, C, P1, P2 >, IndirectRelation< C, projected< I1, P1 >, projected< I2, P2 > >> |
|
template<typename I > |
using | ranges::v3::ContiguousIterator = concepts::models< concepts::ContiguousIterator, I > |
|
template<typename I , typename T > |
using | ranges::v3::ExclusivelyWritable_ = meta::invoke< detail::exclusively_writable_< I >, T > |
|
template<typename I > |
using | ranges::v3::ForwardIterator = concepts::models< concepts::ForwardIterator, I > |
|
template<typename T > |
using | ranges::v3::Incrementable = concepts::models< concepts::Incrementable, T > |
|
template<template< typename... > class InvocableConcept, typename C , typename ... Is> |
using | ranges::v3::detail::indirect_invocable_ = meta::and_< meta::strict_and< Readable< Is >... >, meta::lazy::invoke< iter_map_reduce_fn_< meta::bind_front< meta::quote< InvocableConcept >, C & >, meta::quote< meta::strict_and > >, Is... > > |
|
template<typename C , typename ... Is> |
using | ranges::v3::IndirectInvocable = meta::and_< detail::common_result_indirect_invocable_< C, Is... >, CopyConstructible< C > > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyCopyable = concepts::models< concepts::IndirectlyCopyable, I, O > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyCopyableStorable = concepts::models< concepts::IndirectlyCopyableStorable, I, O > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyMovable = concepts::models< concepts::IndirectlyMovable, I, O > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyMovableStorable = concepts::models< concepts::IndirectlyMovableStorable, I, O > |
|
template<typename I1 , typename I2 > |
using | ranges::v3::IndirectlySwappable = concepts::models< concepts::IndirectlySwappable, I1, I2 > |
|
template<typename C , typename ... Is> |
using | ranges::v3::IndirectPredicate = meta::and_< detail::indirect_invocable_< Predicate, C, Is... >, CopyConstructible< C > > |
|
template<typename C , typename ... Is> |
using | ranges::v3::IndirectRegularInvocable = IndirectInvocable< C, Is... > |
|
template<typename C , typename I0 , typename I1 = I0> |
using | ranges::v3::IndirectRelation = meta::and_< detail::indirect_invocable_< Relation, C, I0, I1 >, CopyConstructible< C > > |
|
template<typename I > |
using | ranges::v3::InputIterator = concepts::models< concepts::InputIterator, I > |
|
template<class... Is> |
using | ranges::v3::detail::iter_args_lists_ = meta::push_back< meta::cartesian_product< meta::transform< meta::list< Is... >, meta::quote< readable_types_ > >>, meta::list< concepts::Readable::common_reference_t< Is >... > > |
|
template<typename MapFn , typename ReduceFn > |
using | ranges::v3::detail::iter_map_reduce_fn_ = meta::compose< meta::uncurry< meta::on< ReduceFn, meta::uncurry< MapFn > >>, meta::quote< iter_args_lists_ > > |
|
template<typename I > |
using | ranges::v3::Iterator = concepts::models< concepts::Iterator, I > |
|
template<typename T > |
using | ranges::v3::iterator_concept = concepts::most_refined< meta::list< concepts::ContiguousIterator, concepts::RandomAccessIterator, concepts::BidirectionalIterator, concepts::ForwardIterator, concepts::InputIterator >, T > |
|
template<typename T > |
using | ranges::v3::iterator_concept_t = meta::_t< iterator_concept< T > > |
|
template<typename I , typename S > |
using | ranges::v3::IteratorRange = Sentinel< S, I > |
|
template<typename I0 , typename I1 , typename Out , typename C = ordered_less, typename P0 = ident, typename P1 = ident> |
using | ranges::v3::Mergeable = meta::strict_and< InputIterator< I0 >, InputIterator< I1 >, WeaklyIncrementable< Out >, IndirectRelation< C, projected< I0, P0 >, projected< I1, P1 > >, IndirectlyCopyable< I0, Out >, IndirectlyCopyable< I1, Out > > |
|
template<typename C , typename ... Is> |
using | ranges::v3::MoveIndirectInvocable = meta::and_< detail::common_result_indirect_invocable_< C, Is... >, MoveConstructible< C > > |
|
template<typename I0 , typename I1 , typename Out , typename C = ordered_less, typename P0 = ident, typename P1 = ident> |
using | ranges::v3::MoveMergeable = meta::strict_and< InputIterator< I0 >, InputIterator< I1 >, WeaklyIncrementable< Out >, IndirectRelation< C, projected< I0, P0 >, projected< I1, P1 > >, IndirectlyMovable< I0, Out >, IndirectlyMovable< I1, Out > > |
|
template<typename Out , typename T > |
using | ranges::v3::OutputIterator = concepts::models< concepts::OutputIterator, Out, T > |
|
template<typename I , typename V = concepts::Readable::value_t<I>> |
using | ranges::v3::Permutable = meta::strict_and< ForwardIterator< I >, IndirectlySwappable< I, I >, IndirectlyMovableStorable< I, I > > |
|
template<typename I , typename Proj > |
using | ranges::v3::projected = meta::if_c< IndirectRegularInvocable< Proj, I >::value, detail::projected_< I, Proj > > |
|
template<typename I > |
using | ranges::v3::RandomAccessIterator = concepts::models< concepts::RandomAccessIterator, I > |
|
template<typename T > |
using | ranges::v3::Readable = concepts::models< concepts::Readable, T > |
|
template<typename I > |
using | ranges::v3::detail::readable_types_ = meta::list< concepts::Readable::value_t< I > &, concepts::Readable::reference_t< I > > |
|
template<typename S , typename I > |
using | ranges::v3::Sentinel = concepts::models< concepts::Sentinel, S, I > |
|
template<typename I > |
using | ranges::v3::SinglePass = meta::strict_and< Iterator< I >, meta::not_< ForwardIterator< I > >> |
|
template<typename S , typename I > |
using | ranges::v3::sized_sentinel_concept = concepts::most_refined< meta::list< concepts::SizedSentinel, concepts::Sentinel >, S, I > |
|
template<typename S , typename I > |
using | ranges::v3::sized_sentinel_concept_t = meta::_t< sized_sentinel_concept< S, I > > |
|
template<typename I , typename S > |
using | ranges::v3::SizedIteratorRange = SizedSentinel< S, I > |
|
template<typename S , typename I > |
using | ranges::v3::SizedSentinel = concepts::models< concepts::SizedSentinel, S, I > |
|
template<typename I , typename C = ordered_less, typename P = ident> |
using | ranges::v3::Sortable = meta::strict_and< ForwardIterator< I >, IndirectRelation< C, projected< I, P >, projected< I, P > >, Permutable< I > > |
|
template<typename T > |
using | ranges::v3::WeaklyIncrementable = concepts::models< concepts::WeaklyIncrementable, T > |
|
template<typename Out , typename T > |
using | ranges::v3::Writable = concepts::models< concepts::Writable, Out, T > |
|