|
template<typename I > |
concept | ranges::bidirectional_iterator |
|
template<typename I > |
concept | ranges::bidirectional_iterator__requires_ = CPP_REQUIRES_requires `(I i) ( --i, i--, concepts::requires_<same_as<I&, decltype(--i)>>, concepts::requires_<same_as<I, decltype(i--)>> ) |
|
template<typename I > |
concept | ranges::contiguous_iterator |
|
template<typename I > |
concept | ranges::contiguous_iterator__concept_ = std::is_lvalue_reference<iter_reference_t<I>>::value && same_as<iter_value_t<I>, uncvref_t<iter_reference_t<I>>> && derived_from<detail::iter_concept_t<I>, ranges::contiguous_iterator_tag> |
|
template<typename I > |
concept | ranges::forward_iterator |
|
template<typename I > |
concept | ranges::incrementable |
|
template<typename I > |
concept | ranges::incrementable__requires_ = CPP_REQUIRES_requires `(I i) ( concepts::requires_<same_as<I, decltype(i++)>> ) |
|
template<typename F , typename I1 , typename I2 > |
concept | ranges::indirect_binary_predicate_ |
|
template<typename F , typename I1 , typename I2 > |
concept | ranges::indirect_binary_predicate_impl__concept_ = predicate<F &, iter_value_t<I1> &, iter_value_t<I2> &> && predicate<F &, iter_value_t<I1> &, iter_reference_t<I2>> && predicate<F &, iter_reference_t<I1>, iter_value_t<I2> &> && predicate<F &, iter_reference_t<I1>, iter_reference_t<I2>> && predicate<F &, iter_common_reference_t<I1>, iter_common_reference_t<I2>> |
|
template<typename F , typename I1 , typename I2 = I1> |
concept | ranges::indirect_relation |
|
template<typename F , typename I1 , typename I2 > |
concept | ranges::indirect_relation__concept_ = relation<F &, iter_value_t<I1> &, iter_value_t<I2> &> && relation<F &, iter_value_t<I1> &, iter_reference_t<I2>> && relation<F &, iter_reference_t<I1>, iter_value_t<I2> &> && relation<F &, iter_reference_t<I1>, iter_reference_t<I2>> && relation<F &, iter_common_reference_t<I1>, iter_common_reference_t<I2>> |
|
template<typename F , typename I1 , typename I2 = I1> |
concept | ranges::indirect_strict_weak_order |
|
template<typename F , typename I1 , typename I2 > |
concept | ranges::indirect_strict_weak_order__concept_ = strict_weak_order<F &, iter_value_t<I1> &, iter_value_t<I2> &> && strict_weak_order<F &, iter_value_t<I1> &, iter_reference_t<I2>> && strict_weak_order<F &, iter_reference_t<I1>, iter_value_t<I2> &> && strict_weak_order<F &, iter_reference_t<I1>, iter_reference_t<I2>> && strict_weak_order<F &, iter_common_reference_t<I1>, iter_common_reference_t<I2>> |
|
template<typename F , typename I > |
concept | ranges::indirect_unary_predicate |
|
template<typename F , typename I > |
concept | ranges::indirect_unary_predicate__concept_ = predicate<F &, iter_value_t<I> &> && predicate<F &, iter_reference_t<I>> && predicate<F &, iter_common_reference_t<I>> |
|
template<typename I1 , typename I2 , typename C , typename P1 = identity, typename P2 = identity> |
concept | ranges::indirectly_comparable |
|
template<typename I , typename O > |
concept | ranges::indirectly_copyable |
|
template<typename I , typename O > |
concept | ranges::indirectly_copyable__concept_ = indirectly_writable<O, iter_reference_t<I>> |
|
template<typename I , typename O > |
concept | ranges::indirectly_copyable_storable |
|
template<typename I , typename O > |
concept | ranges::indirectly_copyable_storable__concept_ = indirectly_writable<O, iter_value_t<I> const &> && copyable<iter_value_t<I>> && constructible_from<iter_value_t<I>, iter_reference_t<I>> && assignable_from<iter_value_t<I> &, iter_reference_t<I>> |
|
template<typename I , typename O > |
concept | ranges::indirectly_movable |
|
template<typename I , typename O > |
concept | ranges::indirectly_movable__concept_ = indirectly_writable<O, iter_rvalue_reference_t<I>> |
|
template<typename I , typename O > |
concept | ranges::indirectly_movable_storable |
|
template<typename I , typename O > |
concept | ranges::indirectly_movable_storable__concept_ = indirectly_writable<O, iter_value_t<I>> && movable<iter_value_t<I>> && constructible_from<iter_value_t<I>, iter_rvalue_reference_t<I>> && assignable_from<iter_value_t<I> &, iter_rvalue_reference_t<I>> |
|
template<typename I > |
concept | ranges::indirectly_readable |
|
template<typename F , typename I > |
concept | ranges::indirectly_regular_unary_invocable |
|
template<typename F , typename I > |
concept | ranges::indirectly_regular_unary_invocable__concept_ = regular_invocable<F &, iter_value_t<I> &> && regular_invocable<F &, iter_reference_t<I>> && regular_invocable<F &, iter_common_reference_t<I>> && common_reference_with< invoke_result_t<F &, iter_value_t<I> &>, invoke_result_t<F &, iter_reference_t<I>>> |
|
template<typename I1 , typename I2 = I1> |
concept | ranges::indirectly_swappable |
|
template<typename I1 , typename I2 > |
concept | ranges::indirectly_swappable__requires_ = CPP_REQUIRES_requires `(I1 const i1, I2 const i2) ( ranges::iter_swap(i1, i2), ranges::iter_swap(i1, i1), ranges::iter_swap(i2, i2), ranges::iter_swap(i2, i1) ) |
|
template<typename F , typename I > |
concept | ranges::indirectly_unary_invocable |
|
template<typename O , typename T > |
concept | ranges::indirectly_writable |
|
template<typename I > |
concept | ranges::input_iterator |
|
template<typename I > |
concept | ranges::input_or_output_iterator |
|
template<typename I > |
concept | ranges::input_or_output_iterator__concept_ = detail::dereferenceable_<I&> |
|
template<typename I1 , typename I2 , typename Out , typename C = less, typename P1 = identity, typename P2 = identity> |
concept | ranges::mergeable |
|
template<typename Out , typename T > |
concept | ranges::output_iterator |
|
template<typename Out , typename T > |
concept | ranges::output_iterator__requires_ = CPP_REQUIRES_requires `(Out o, T && t) ( *o++ = (T &&) t ) |
|
template<typename I > |
concept | ranges::permutable |
|
template<typename C , typename I1 , typename P1 , typename I2 , typename P2 > |
concept | ranges::projected_indirect_relation__concept_ = indirect_relation<C, projected<I1, P1>, projected<I2, P2>> |
|
template<typename C , typename I1 , typename P1 , typename I2 , typename P2 > |
concept | ranges::projected_indirect_strict_weak_order__concept_ = indirect_strict_weak_order<C, projected<I1, P1>, projected<I2, P2>> |
|
template<typename I > |
concept | ranges::random_access_iterator |
|
template<typename I > |
concept | ranges::random_access_iterator__requires_ = CPP_REQUIRES_requires `(I i, iter_difference_t<I> n) ( i + n, n + i, i - n, i += n, i -= n, concepts::requires_<same_as<decltype(i + n), I>>, concepts::requires_<same_as<decltype(n + i), I>>, concepts::requires_<same_as<decltype(i - n), I>>, concepts::requires_<same_as<decltype(i += n), I&>>, concepts::requires_<same_as<decltype(i -= n), I&>>, concepts::requires_<same_as<decltype(i[n]), iter_reference_t<I>>> ) |
|
template<typename I > |
concept | ranges::readable__concept_ = same_as<iter_reference_t<I const>, iter_reference_t<I>> && same_as<iter_rvalue_reference_t<I const>, iter_rvalue_reference_t<I>> && common_reference_with<iter_reference_t<I> &&, iter_value_t<I> &> && common_reference_with<iter_reference_t<I> &&, iter_rvalue_reference_t<I> &&> && common_reference_with<iter_rvalue_reference_t<I> &&, iter_value_t<I> const &> |
|
template<typename S , typename I > |
concept | ranges::sentinel_for |
|
template<typename S , typename I > |
concept | ranges::sized_sentinel_for |
|
template<typename S , typename I > |
concept | ranges::sized_sentinel_for__concept_ = (!disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>>) && sentinel_for<S, I> |
|
template<typename S , typename I > |
concept | ranges::sized_sentinel_for__requires_ = CPP_REQUIRES_requires `(S const & s, I const & i) ( s - i, i - s, concepts::requires_<same_as<iter_difference_t<I>, decltype(s - i)>>, concepts::requires_<same_as<iter_difference_t<I>, decltype(i - s)>> ) |
|
template<typename I , typename C = less, typename P = identity> |
concept | ranges::sortable |
|
template<typename I > |
concept | ranges::weakly_incrementable |
|
template<typename I > |
concept | ranges::weakly_incrementable__concept_ = concepts::type<iter_difference_t<I>> && detail::signed_integer_like_<iter_difference_t<I>> |
|
template<typename I > |
concept | ranges::weakly_incrementable__requires_ = CPP_REQUIRES_requires `(I i) ( ++i, i++, concepts::requires_<same_as<I&, decltype(++i)>> ) |
|
template<typename I , typename Tag > |
concept | ranges::with_category__concept_ = derived_from<detail::iter_concept_t<I>, Tag> |
|
template<typename O , typename T > |
concept | ranges::writable__requires_ = CPP_REQUIRES_requires `(O && o, T && t) ( *o = (T &&) t, *(O &&) o = (T &&) t, const_cast<iter_reference_t<O> const &&>(*o) = (T &&) t, const_cast<iter_reference_t<O> const &&>(*(O &&) o) = (T &&) t ) |
|