|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename Out, typename T)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename S, typename I)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename F, typename I)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename F, typename I1, typename I2)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename F, typename I1, typename I2=I1)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(class F, class I1, class I2=I1)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I, typename O)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I1, typename I2=I1)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I1, typename I2, typename C, typename P1=identity, typename P2=identity)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I0, typename I1, typename Out, typename C=less, typename P0=identity, typename P1=identity)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
| ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I, typename C=less, typename P=identity)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_ |
|
|
concept | ranges::bidirectional_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (I i) ( --i, i--, concepts::requires_<same_as<I&, decltype(--i)>>, concepts::requires_<same_as<I, decltype(i--)>> ) && forward_iterator<I> && derived_from<detail::iter_concept_t<I> )( requires (I i) ( --i, i--, concepts::requires_<same_as<I&, decltype(--i)>>, concepts::requires_<same_as<I, decltype(i--)>> ) && forward_iterator<I> && derived_from<detail::iter_concept_t<I>, std::bidirectional_iterator_tag> ) |
|
concept | ranges::contiguous_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( random_access_iterator<I> && derived_from<detail::iter_concept_t<I> )( random_access_iterator<I> && derived_from<detail::iter_concept_t<I>, ranges::contiguous_iterator_tag> && std::is_lvalue_reference<iter_reference_t<I>>::value && same_as<iter_value_t<I>, uncvref_t<iter_reference_t<I>>> ) |
|
concept | ranges::forward_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( input_iterator<I> && incrementable<I> && sentinel_for<I )( input_iterator<I> && incrementable<I> && sentinel_for<I, I> && derived_from<detail::iter_concept_t<I>, std::forward_iterator_tag> ) |
|
concept | ranges::incrementable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (I i) ( concepts::requires_<same_as<I, decltype(i++)>> ) && regular<I> && weakly_incrementable<I> )( requires (I i) ( concepts::requires_<same_as<I, decltype(i++)>> ) && regular<I> && weakly_incrementable<I> ) |
|
concept | ranges::indirect_binary_predicate_ = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I1> && readable<I2> && copy_constructible<F> && predicate<F & )( readable<I1> && readable<I2> && copy_constructible<F> && 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>> ) |
|
concept | ranges::indirect_relation = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I1> && readable<I2> && copy_constructible<F> && relation<F & )( readable<I1> && readable<I2> && copy_constructible<F> && 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>> ) |
|
concept | ranges::indirect_strict_weak_order = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I1> && readable<I2> && copy_constructible<F> && strict_weak_order<F & )( readable<I1> && readable<I2> && copy_constructible<F> && 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>> ) |
|
concept | ranges::indirect_unary_predicate = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I> && copy_constructible<F> && predicate<F & )( readable<I> && copy_constructible<F> && predicate<F &, iter_value_t<I> &> && predicate<F &, iter_reference_t<I>> && predicate<F &, iter_common_reference_t<I>> ) |
|
concept | ranges::indirectly_comparable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( indirect_relation<C )( indirect_relation<C, projected<I1, P1>, projected<I2, P2>> ) |
|
concept | ranges::indirectly_copyable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I> && writable<O )( readable<I> && writable<O, iter_reference_t<I>> ) |
|
concept | ranges::indirectly_copyable_storable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( indirectly_copyable<I )( indirectly_copyable<I, O> && 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>> ) |
|
concept | ranges::indirectly_movable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I> && writable<O )( readable<I> && writable<O, iter_rvalue_reference_t<I>> ) |
|
concept | ranges::indirectly_movable_storable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( indirectly_movable<I )( indirectly_movable<I, O> && 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>> ) |
|
concept | ranges::indirectly_regular_unary_invocable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( readable<I> && copy_constructible<F> && regular_invocable<F & )( readable<I> && copy_constructible<F> && 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>>> ) |
|
concept | ranges::indirectly_swappable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (I1 && i1, I2 && i2) ( ranges::iter_swap((I1 &&) i1, (I2 &&) i2), ranges::iter_swap((I1 &&) i1, (I1 &&) i1), ranges::iter_swap((I2 &&) i2, (I2 &&) i2), ranges::iter_swap((I2 &&) i2, (I1 &&) i1) ) && readable<I1> && readable<I2> )( requires (I1 && i1, I2 && i2) ( ranges::iter_swap((I1 &&) i1, (I2 &&) i2), ranges::iter_swap((I1 &&) i1, (I1 &&) i1), ranges::iter_swap((I2 &&) i2, (I2 &&) i2), ranges::iter_swap((I2 &&) i2, (I1 &&) i1) ) && readable<I1> && readable<I2> ) |
|
concept | ranges::indirectly_unary_invocable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( detail::indirectly_unary_invocable_<F )( detail::indirectly_unary_invocable_<F, I> && copy_constructible<F> ) |
|
concept | ranges::input_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( input_or_output_iterator<I> && readable<I> && derived_from<detail::iter_concept_t<I> )( input_or_output_iterator<I> && readable<I> && derived_from<detail::iter_concept_t<I>, std::input_iterator_tag> ) |
|
concept | ranges::input_or_output_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (I i) ( *i ) && weakly_incrementable<I> )( requires (I i) ( *i ) && weakly_incrementable<I> ) |
|
concept | ranges::mergeable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( input_iterator<I0> && input_iterator<I1> && weakly_incrementable<Out> && indirectly_copyable<I0 )( input_iterator<I0> && input_iterator<I1> && weakly_incrementable<Out> && indirectly_copyable<I0, Out> && indirectly_copyable<I1, Out> && indirect_strict_weak_order<C, projected<I0, P0>, projected<I1, P1>> ) |
|
concept | ranges::output_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (Out o, T &&t) ( *o++ = static_cast<T &&>(t) ) && input_or_output_iterator<Out> && writable<Out )( requires (Out o, T &&t) ( *o++ = static_cast<T &&>(t) ) && input_or_output_iterator<Out> && writable<Out, T> ) |
|
concept | ranges::permutable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( forward_iterator<I> && indirectly_swappable<I )( forward_iterator<I> && indirectly_swappable<I, I> && indirectly_movable_storable<I, I> ) |
|
concept | ranges::random_access_iterator = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( 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>>> ) && bidirectional_iterator<I> && totally_ordered<I> && sized_sentinel_for<I )( 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>>> ) && bidirectional_iterator<I> && totally_ordered<I> && sized_sentinel_for<I, I> && derived_from<detail::iter_concept_t<I>, std::random_access_iterator_tag> ) |
|
concept | ranges::readable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( common_reference_with<iter_reference_t<I> && )( common_reference_with<iter_reference_t<I> &&, iter_value_t<std::remove_reference_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<std::remove_reference_t<I>> const &> ) |
|
concept | ranges::sentinel_for = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( semiregular<S> && input_or_output_iterator<I> && detail::weakly_equality_comparable_with_<S )( semiregular<S> && input_or_output_iterator<I> && detail::weakly_equality_comparable_with_<S, I> ) |
|
concept | ranges::sized_sentinel_for = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( 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)>> ) && (!defer::is_true<disable_sized_sentinel<meta::_t<std::remove_cv<S>>, meta::_t<std::remove_cv<I>>>> && defer::sentinel_for<S, I>) )( 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)>> ) && (!defer::is_true<disable_sized_sentinel<meta::_t<std::remove_cv<S>>, meta::_t<std::remove_cv<I>>>> && defer::sentinel_for<S, I>) ) |
|
concept | ranges::sortable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( permutable<I> && indirect_strict_weak_order<C )( permutable<I> && indirect_strict_weak_order<C, projected<I, P>> ) |
|
concept | ranges::weakly_incrementable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (I i) ( ++i, i++, concepts::requires_<same_as<I&, decltype(++i)>> ) && concepts::type<iter_difference_t<I>> && detail::signed_integer_like_<iter_difference_t<I>> && semiregular<I> )( requires (I i) ( ++i, i++, concepts::requires_<same_as<I&, decltype(++i)>> ) && concepts::type<iter_difference_t<I>> && detail::signed_integer_like_<iter_difference_t<I>> && semiregular<I> ) |
|
concept | ranges::writable = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires (Out &&o, T &&t) ( *o = static_cast<T &&>(t), *((Out &&) o) = static_cast<T &&>(t), const_cast<iter_reference_t<Out> const &&>(*o) = static_cast<T &&>(t), const_cast<iter_reference_t<Out> const &&>(*((Out &&) o)) = static_cast<T &&>(t) ) )( requires (Out &&o, T &&t) ( *o = static_cast<T &&>(t), *((Out &&) o) = static_cast<T &&>(t), const_cast<iter_reference_t<Out> const &&>(*o) = static_cast<T &&>(t), const_cast<iter_reference_t<Out> const &&>(*((Out &&) o)) = static_cast<T &&>(t) ) ) |
|