Range-v3
Range algorithms, views, and actions for the Standard Library
|
|
|
#define | CPP_arg(ARG) CPP_arg_2 ARG |
|
#define | CPP_arg_2(...) __VA_ARGS__ |
|
#define | CPP_assert(...) |
|
#define | CPP_assert_msg static_assert |
|
#define | CPP_auto_fun(X) X CPP_AUTO_FUN_IMPL_ |
|
#define | CPP_AUTO_FUN_DECLTYPE_NOEXCEPT_(...) |
|
#define | CPP_AUTO_FUN_IMPL_(...) (__VA_ARGS__) CPP_AUTO_FUN_RETURNS_ |
|
#define | CPP_AUTO_FUN_RETURNS_(...) CPP_AUTO_FUN_SELECT_RETURNS_(__VA_ARGS__,)(__VA_ARGS__) \ |
|
#define | CPP_AUTO_FUN_RETURNS_CONST_0(...) |
|
#define | CPP_AUTO_FUN_RETURNS_CONST_1(...) __VA_ARGS__ CPP_AUTO_FUN_RETURNS_CONST_0 \ |
|
#define | CPP_AUTO_FUN_RETURNS_CONST_2(...) CPP_PP_CAT(CPP_PP_EAT_MUTABLE_, __VA_ARGS__) CPP_AUTO_FUN_RETURNS_CONST_0 |
|
#define | CPP_AUTO_FUN_RETURNS_return |
|
#define | CPP_AUTO_FUN_SELECT_RETURNS_(MAYBE_CONST, ...) |
|
#define | CPP_broken_friend_ret(...) __VA_ARGS__ CPP_PP_EXPAND \ |
|
#define | CPP_concept META_CONCEPT |
|
#define | CPP_concept_bool META_CONCEPT |
|
#define | CPP_concept_fragment(NAME, ARGS, ...) META_CONCEPT NAME = __VA_ARGS__ |
|
#define | CPP_ctor(TYPE) TYPE CPP_CTOR_IMPL_1_ |
|
#define | CPP_CTOR_IMPL_1_(...) (__VA_ARGS__) CPP_PP_EXPAND \ |
|
#define | CPP_ctor_sfinae(TYPE) |
|
#define | CPP_CTOR_SFINAE_EAT_NOEXCEPT_noexcept(...) |
|
#define | CPP_CTOR_SFINAE_IMPL_1_(...) |
|
#define | CPP_CTOR_SFINAE_MAKE_PROBE(FIRST, ...) CPP_PP_CAT(CPP_CTOR_SFINAE_PROBE_NOEXCEPT_, FIRST) \ |
|
#define | CPP_CTOR_SFINAE_PROBE_NOEXCEPT_noexcept CPP_PP_PROBE(~) \ |
|
#define | CPP_CTOR_SFINAE_REQUIRES(...) |
|
#define | CPP_CTOR_SFINAE_REQUIRES_0(...) |
|
#define | CPP_CTOR_SFINAE_REQUIRES_1(...) |
|
#define | CPP_CTOR_SFINAE_SHOW_NOEXCEPT_noexcept(...) |
|
#define | CPP_CXX_CONCEPTS 201800L |
|
#define | CPP_CXX_VA_OPT 0 |
|
#define | CPP_defer(CONCEPT, ...) CONCEPT<__VA_ARGS__> |
|
#define | CPP_defer_(CONCEPT, ...) CONCEPT<__VA_ARGS__> |
|
#define | CPP_FORCE_TO_BOOL |
|
#define | CPP_fragment(NAME, ...) NAME<__VA_ARGS__> |
|
#define | CPP_fun(X) X CPP_FUN_IMPL_1_ |
|
#define | CPP_FUN_IMPL_1_(...) |
|
#define | CPP_fwd(ARG) ((decltype(ARG)&&) ARG) |
|
#define | CPP_INSTANCE(...) __VA_ARGS__ |
|
#define | CPP_literal(...) __VA_ARGS__ |
|
#define | CPP_member |
|
#define | CPP_member_sfinae CPP_broken_friend_member \ |
|
#define | CPP_name_of(...) CPP_PP_EAT __VA_ARGS__ |
|
#define | CPP_param(...) auto&& CPP_name_of(__VA_ARGS__) |
|
#define | CPP_PP_CAT(X, ...) CPP_PP_CAT_(X, __VA_ARGS__) |
|
#define | CPP_PP_CAT2(X, ...) CPP_PP_CAT2_(X, __VA_ARGS__) |
|
#define | CPP_PP_CAT2_(X, ...) X ## __VA_ARGS__ |
|
#define | CPP_PP_CAT_(X, ...) X ## __VA_ARGS__ |
|
#define | CPP_PP_CHECK(...) CPP_PP_CHECK_N(__VA_ARGS__, 0,) |
|
#define | CPP_PP_CHECK_N(x, n, ...) n |
|
#define | CPP_PP_COMMA() , |
|
#define | CPP_PP_COMMA_IIF(X) CPP_PP_IIF(X)(CPP_PP_EMPTY, CPP_PP_COMMA)() \ |
|
#define | CPP_PP_COUNT(...) |
|
#define | CPP_PP_COUNT_( _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, N, ...) N \ |
|
#define | CPP_PP_EAT(...) |
|
#define | CPP_PP_EAT_MUTABLE_mutable |
|
#define | CPP_PP_EMPTY() |
|
#define | CPP_PP_EVAL(X, ...) X(__VA_ARGS__) |
|
#define | CPP_PP_EVAL2(X, ...) X(__VA_ARGS__) |
|
#define | CPP_PP_EXPAND(...) __VA_ARGS__ |
|
#define | CPP_PP_FOR_EACH(M, ...) CPP_PP_FOR_EACH_N(CPP_PP_COUNT(__VA_ARGS__), M, __VA_ARGS__) |
|
#define | CPP_PP_FOR_EACH_1(M, _1) M(_1) |
|
#define | CPP_PP_FOR_EACH_2(M, _1, _2) M(_1), M(_2) |
|
#define | CPP_PP_FOR_EACH_3(M, _1, _2, _3) M(_1), M(_2), M(_3) |
|
#define | CPP_PP_FOR_EACH_4(M, _1, _2, _3, _4) M(_1), M(_2), M(_3), M(_4) |
|
#define | CPP_PP_FOR_EACH_5(M, _1, _2, _3, _4, _5) M(_1), M(_2), M(_3), M(_4), M(_5) |
|
#define | CPP_PP_FOR_EACH_6(M, _1, _2, _3, _4, _5, _6) M(_1), M(_2), M(_3), M(_4), M(_5), M(_6) |
|
#define | CPP_PP_FOR_EACH_7(M, _1, _2, _3, _4, _5, _6, _7) M(_1), M(_2), M(_3), M(_4), M(_5), M(_6), M(_7) |
|
#define | CPP_PP_FOR_EACH_8(M, _1, _2, _3, _4, _5, _6, _7, _8) M(_1), M(_2), M(_3), M(_4), M(_5), M(_6), M(_7), M(_8) |
|
#define | CPP_PP_FOR_EACH_N(N, M, ...) CPP_PP_CAT(CPP_PP_FOR_EACH_, N)(M, __VA_ARGS__) |
|
#define | CPP_PP_IGNORE_CXX2A_COMPAT_BEGIN |
|
#define | CPP_PP_IGNORE_CXX2A_COMPAT_END |
|
#define | CPP_PP_IIF(BIT) CPP_PP_CAT_(CPP_PP_IIF_, BIT) |
|
#define | CPP_PP_IIF_0(TRUE, ...) __VA_ARGS__ |
|
#define | CPP_PP_IIF_1(TRUE, ...) TRUE |
|
#define | CPP_PP_IS_NOT_EMPTY(...) |
|
#define | CPP_PP_IS_PAREN(x) CPP_PP_CHECK(CPP_PP_IS_PAREN_PROBE x) |
|
#define | CPP_PP_IS_PAREN_PROBE(...) CPP_PP_PROBE(~) |
|
#define | CPP_PP_LBRACE() { |
|
#define | CPP_PP_LPAREN ( |
|
#define | CPP_PP_NOT(BIT) CPP_PP_CAT_(CPP_PP_NOT_, BIT) |
|
#define | CPP_PP_NOT_0 1 |
|
#define | CPP_PP_NOT_1 0 |
|
#define | CPP_PP_PROBE(x) x, 1, |
|
#define | CPP_PP_PROBE_CONST_MUTABLE_PROBE_const CPP_PP_PROBE_N(~, 1) |
|
#define | CPP_PP_PROBE_CONST_MUTABLE_PROBE_mutable CPP_PP_PROBE_N(~, 2) |
|
#define | CPP_PP_PROBE_EMPTY() |
|
#define | CPP_PP_PROBE_EMPTY_PROBE_CPP_PP_PROBE_EMPTY CPP_PP_PROBE(~) \ |
|
#define | CPP_PP_PROBE_N(x, n) x, n, |
|
#define | CPP_PP_RBRACE() } |
|
#define | CPP_requires(...) CPP_requires_n(CPP_PP_COUNT(__VA_ARGS__), __VA_ARGS__) |
|
#define | CPP_requires_(...) CPP_requires_n_(CPP_PP_COUNT(__VA_ARGS__), __VA_ARGS__) |
|
#define | CPP_requires_n(N, ...) |
|
#define | CPP_requires_n_ CPP_requires_n |
|
#define | CPP_ret(...) __VA_ARGS__ CPP_PP_EXPAND \ |
|
#define | CPP_template(...) template<__VA_ARGS__> CPP_PP_EXPAND \ |
|
#define | CPP_template_def CPP_template \ |
|
#define | CPP_template_def_sfinae(...) template<__VA_ARGS__ CPP_TEMPLATE_DEF_SFINAE_AUX_ \ |
|
#define | CPP_TEMPLATE_DEF_SFINAE_AUX_(...) |
|
#define | CPP_template_sfinae(...) template<__VA_ARGS__ CPP_TEMPLATE_SFINAE_AUX_ \ |
|
#define | CPP_TEMPLATE_SFINAE_AUX_(...) |
|
#define | CPP_TEMPLATE_SFINAE_AUX_3_requires |
|
#define | CPP_type(...) __VA_ARGS__ |
|
#define | CPP_type_of(...) CPP_PP_EXPAND(CPP_type_of_2 __VA_ARGS__)) |
|
#define | CPP_type_of_2(...) __VA_ARGS__ CPP_PP_EAT CPP_PP_LPAREN |
|
#define | CPP_valid_expressions |
|
|
template<bool B> |
using | concepts::bool_ = std::integral_constant< bool, B > |
|
template<class T , class U > |
using | concepts::detail::first_t = meta::invoke< first_impl< sizeof(U) ^ sizeof(U)>, T > |
|
template<class T > |
using | concepts::detail::id_t = T |
|
template<typename Fun , typename... Args> |
using | concepts::detail::invoke_result_t = decltype(((Fun &&(*)()) nullptr)()(((Args &&(*)()) nullptr)()...)) |
|
template<typename T > |
using | concepts::detail::remove_cvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type |
|
template<typename T , typename EnableIf > |
using | concepts::return_t = meta::invoke< return_t_< EnableIf >, T > |
|
using | concepts::detail::xNil = Nil |
|
|
constexpr std::true_type | concepts::detail::CPP_true (Nil) |
|
template<class Fn > |
constexpr boolean_< Fn > | concepts::detail::make_boolean (Fn) noexcept |
|
template<typename > |
constexpr bool | concepts::detail::requires_ () |
|
template<typename ... Args, typename ExprsFn > |
auto | concepts::detail::test_concept (tag< Args... > *, ExprsFn) -> first_t< true_type, invoke_result_t< ExprsFn, int, Args... >> |
|
false_type | concepts::detail::test_concept (void *, ignore) |
|
template<typename ArgsFn , typename ExprsFn > |
auto | concepts::detail::test_concept_ (ArgsFn const args, ExprsFn exprs) -> decltype(args((ExprsFn &&) exprs)) |
|
false_type | concepts::detail::test_concept_ (ignore, ignore) |
|
|
template<bool... Bs> |
constexpr bool | concepts::and_v |
|
template<typename T , typename U > |
concept | concepts::defs::assignable_from |
|
template<typename T , typename U > |
concept | concepts::defs::defer::assignable_from |
|
template<typename T , typename U > |
concept | concepts::defs::common_reference_with |
|
template<typename T , typename U > |
concept | concepts::defs::defer::common_reference_with |
|
template<typename T , typename U > |
concept | concepts::defs::common_reference_with_ = same_as<common_reference_t<T, U>, common_reference_t<U, T>> && convertible_to<T, common_reference_t<T, U>> && convertible_to<U, common_reference_t<T, U>> |
|
template<typename T , typename U > |
concept | concepts::defs::common_with |
|
template<typename T , typename U > |
concept | concepts::defs::defer::common_with |
|
template<typename T , typename U > |
concept | concepts::defs::common_with_ = same_as<common_type_t<T, U>, common_type_t<U, T>> && convertible_to<T, common_type_t<T, U>> && convertible_to<U, common_type_t<T, U>> && common_reference_with< std::add_lvalue_reference_t<T const>, std::add_lvalue_reference_t<U const>> && common_reference_with< std::add_lvalue_reference_t<common_type_t<T, U>>, common_reference_t< std::add_lvalue_reference_t<T const>, std::add_lvalue_reference_t<U const>>> |
|
template<typename T , typename... Args> |
concept | concepts::defs::constructible_from |
|
template<typename T , typename... Args> |
concept | concepts::defs::defer::constructible_from |
|
template<typename From , typename To > |
concept | concepts::defs::convertible_to |
|
template<typename From , typename To > |
concept | concepts::defs::defer::convertible_to |
|
template<typename T > |
concept | concepts::defs::copy_constructible |
|
template<typename T > |
concept | concepts::defs::defer::copy_constructible |
|
template<typename T > |
concept | concepts::defs::copyable |
|
template<typename T > |
concept | concepts::defs::defer::copyable |
|
template<typename T > |
concept | concepts::defs::default_constructible |
|
template<typename T > |
concept | concepts::defs::defer::default_constructible |
|
template<typename T , typename U > |
concept | concepts::defs::derived_from |
|
template<typename T , typename U > |
concept | concepts::defs::defer::derived_from |
|
template<typename T , typename U > |
concept | concepts::defs::derived_from_ = convertible_to<T const volatile *, U const volatile *> |
|
template<typename T > |
concept | concepts::defs::destructible |
|
template<typename T > |
concept | concepts::defs::defer::destructible |
|
template<typename T > |
concept | concepts::defs::equality_comparable |
|
template<typename T > |
concept | concepts::defs::defer::equality_comparable |
|
template<typename T , typename U > |
concept | concepts::defs::equality_comparable_with |
|
template<typename T , typename U > |
concept | concepts::defs::defer::equality_comparable_with |
|
template<typename T , typename U > |
concept | concepts::defs::equality_comparable_with_ = equality_comparable< common_reference_t<detail::as_cref_t<T>, detail::as_cref_t<U>>> |
|
template<typename T > |
constexpr T | concepts::detail::instance_ = T{} |
|
template<typename T > |
concept | concepts::defs::integral |
|
template<typename T > |
concept | concepts::defs::defer::integral |
|
template<bool B> |
concept | concepts::defs::is_true = B |
|
template<bool B> |
concept | concepts::defs::defer::is_true |
|
template<typename T > |
concept | concepts::defs::movable |
|
template<typename T > |
concept | concepts::defs::defer::movable |
|
template<typename T > |
concept | concepts::defs::move_constructible |
|
template<typename T > |
concept | concepts::defs::defer::move_constructible |
|
template<bool... Bs> |
constexpr bool | concepts::or_v |
|
template<typename T > |
concept | concepts::defs::regular |
|
template<typename T > |
concept | concepts::defs::defer::regular |
|
template<bool B> |
constexpr std::enable_if_t< B, int > | concepts::requires_ = 0 |
|
template<typename A , typename B > |
concept | concepts::defs::same_as |
|
template<typename A , typename B > |
concept | concepts::defs::defer::same_as |
|
template<class T , template< typename... > class Trait, typename... Args> |
concept | concepts::defs::satisfies |
|
template<class T , template< typename... > class Trait, typename... Args> |
concept | concepts::defs::defer::satisfies |
|
template<typename T > |
concept | concepts::defs::semiregular |
|
template<typename T > |
concept | concepts::defs::defer::semiregular |
|
template<typename T > |
concept | concepts::defs::signed_integral |
|
template<typename T > |
concept | concepts::defs::defer::signed_integral |
|
template<typename T > |
concept | concepts::defs::swappable |
|
template<typename T > |
concept | concepts::defs::defer::swappable |
|
template<typename T , typename U > |
concept | concepts::defs::swappable_with |
|
template<typename T , typename U > |
concept | concepts::defs::defer::swappable_with |
|
template<typename T > |
concept | concepts::defs::totally_ordered |
|
template<typename T > |
concept | concepts::defs::defer::totally_ordered |
|
template<typename T , typename U > |
concept | concepts::defs::totally_ordered_with |
|
template<typename T , typename U > |
concept | concepts::defs::defer::totally_ordered_with |
|
template<typename T , typename U > |
concept | concepts::defs::totally_ordered_with_ = totally_ordered< common_reference_t<detail::as_cref_t<T>, detail::as_cref_t<U>>> |
|
template<typename... Args> |
concept | concepts::defs::type = true |
|
template<typename... Ts> |
concept | concepts::defs::defer::type |
|
template<typename T > |
concept | concepts::defs::unsigned_integral |
|
template<typename T > |
concept | concepts::defs::defer::unsigned_integral |
|
template<typename T , typename U > |
concept | concepts::detail::weakly_equality_comparable_with_ |
|
◆ CPP_assert
#define CPP_assert |
( |
|
... | ) |
|
Value:static_assert(static_cast<bool>(__VA_ARGS__), \
"Concept assertion failed : " #__VA_ARGS__) \
◆ CPP_AUTO_FUN_DECLTYPE_NOEXCEPT_
#define CPP_AUTO_FUN_DECLTYPE_NOEXCEPT_ |
( |
|
... | ) |
|
Value:noexcept(noexcept(decltype(__VA_ARGS__)(__VA_ARGS__))) -> \
decltype(__VA_ARGS__) \
{ return (__VA_ARGS__); } \
◆ CPP_AUTO_FUN_RETURNS_CONST_0
#define CPP_AUTO_FUN_RETURNS_CONST_0 |
( |
|
... | ) |
|
Value:CPP_PP_EVAL(CPP_AUTO_FUN_DECLTYPE_NOEXCEPT_, \
CPP_PP_CAT(CPP_AUTO_FUN_RETURNS_, __VA_ARGS__)) \
◆ CPP_AUTO_FUN_SELECT_RETURNS_
#define CPP_AUTO_FUN_SELECT_RETURNS_ |
( |
|
MAYBE_CONST, |
|
|
|
... |
|
) |
| |
Value:CPP_PP_CAT(CPP_AUTO_FUN_RETURNS_CONST_, \
CPP_PP_CHECK(CPP_PP_CAT( \
CPP_PP_PROBE_CONST_MUTABLE_PROBE_, MAYBE_CONST))) \
◆ CPP_ctor_sfinae
#define CPP_ctor_sfinae |
( |
|
TYPE | ) |
|
Value:CPP_PP_IGNORE_CXX2A_COMPAT_BEGIN \
TYPE CPP_CTOR_SFINAE_IMPL_1_ \
◆ CPP_CTOR_SFINAE_IMPL_1_
#define CPP_CTOR_SFINAE_IMPL_1_ |
( |
|
... | ) |
|
Value:(__VA_ARGS__ \
CPP_PP_COMMA_IIF( \
CPP_PP_NOT(CPP_PP_IS_NOT_EMPTY(__VA_ARGS__))) \
CPP_CTOR_SFINAE_REQUIRES \
◆ CPP_CTOR_SFINAE_REQUIRES
#define CPP_CTOR_SFINAE_REQUIRES |
( |
|
... | ) |
|
Value:CPP_PP_CAT(CPP_CTOR_SFINAE_REQUIRES_, \
CPP_PP_CHECK(CPP_CTOR_SFINAE_MAKE_PROBE(__VA_ARGS__,)))(__VA_ARGS__) \
◆ CPP_CTOR_SFINAE_REQUIRES_0
#define CPP_CTOR_SFINAE_REQUIRES_0 |
( |
|
... | ) |
|
Value:std::enable_if_t< \
CPP_FORCE_TO_BOOL( \
CPP_PP_CAT(CPP_TEMPLATE_SFINAE_AUX_3_, __VA_ARGS__) && \
), \
> = {}) \
CPP_PP_IGNORE_CXX2A_COMPAT_END \
◆ CPP_CTOR_SFINAE_REQUIRES_1
#define CPP_CTOR_SFINAE_REQUIRES_1 |
( |
|
... | ) |
|
Value:std::enable_if_t< \
CPP_FORCE_TO_BOOL( \
CPP_PP_CAT(CPP_TEMPLATE_SFINAE_AUX_3_, \
CPP_PP_CAT(CPP_CTOR_SFINAE_EAT_NOEXCEPT_, __VA_ARGS__) \
), \
> = {}) \
CPP_PP_EXPAND(CPP_PP_CAT(CPP_CTOR_SFINAE_SHOW_NOEXCEPT_, __VA_ARGS__))) \
◆ CPP_CTOR_SFINAE_SHOW_NOEXCEPT_noexcept
#define CPP_CTOR_SFINAE_SHOW_NOEXCEPT_noexcept |
( |
|
... | ) |
|
Value:noexcept(__VA_ARGS__) \
CPP_PP_IGNORE_CXX2A_COMPAT_END \
CPP_PP_EAT CPP_PP_LPAREN \
◆ CPP_FUN_IMPL_1_
#define CPP_FUN_IMPL_1_ |
( |
|
... | ) |
|
Value:(__VA_ARGS__) \
CPP_PP_EXPAND \
◆ CPP_PP_COUNT
#define CPP_PP_COUNT |
( |
|
... | ) |
|
Value:CPP_PP_COUNT_(__VA_ARGS__, \
50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31, \
30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11, \
10,9,8,7,6,5,4,3,2,1,) \
◆ CPP_PP_IS_NOT_EMPTY
#define CPP_PP_IS_NOT_EMPTY |
( |
|
... | ) |
|
Value:CPP_PP_CHECK(CPP_PP_CAT(CPP_PP_PROBE_EMPTY_PROBE_, \
CPP_PP_PROBE_EMPTY __VA_ARGS__ ())) \
◆ CPP_requires_n
#define CPP_requires_n |
( |
|
N, |
|
|
|
... |
|
) |
| |
Value:requires(CPP_PP_FOR_EACH_N(N, CPP_arg, __VA_ARGS__)) \
CPP_valid_expressions
◆ CPP_TEMPLATE_DEF_SFINAE_AUX_
#define CPP_TEMPLATE_DEF_SFINAE_AUX_ |
( |
|
... | ) |
|
Value:, \
typename CPP_true_, \
std::enable_if_t< \
CPP_FORCE_TO_BOOL( \
CPP_PP_CAT(CPP_TEMPLATE_SFINAE_AUX_3_, __VA_ARGS__) && CPP_true_{} \
), \
int \
>> \
◆ CPP_TEMPLATE_SFINAE_AUX_
#define CPP_TEMPLATE_SFINAE_AUX_ |
( |
|
... | ) |
|
Value:, \
typename CPP_true_ = std::true_type, \
std::enable_if_t< \
CPP_FORCE_TO_BOOL( \
CPP_PP_CAT(CPP_TEMPLATE_SFINAE_AUX_3_, __VA_ARGS__) && CPP_true_{} \
), \
int \
> = 0> \
◆ and_v
template<bool... Bs>
constexpr bool concepts::and_v |
|
constexpr |
Initial value:=
std::is_same< detail::bools<Bs..., true>, detail::bools<true, Bs...> >::value
◆ assignable_from [1/2]
template<typename T , typename U >
concept concepts::defs::assignable_from |
Initial value:=
std::is_lvalue_reference<T>::value &&
(
t = (U &&) u,
requires_<same_as<T, decltype(t = (U &&) u)>>
)
◆ assignable_from [2/2]
template<typename T , typename U >
concept concepts::defs::defer::assignable_from |
Initial value:=
defs::assignable_from < T, U >
◆ common_reference_with [1/2]
template<typename T , typename U >
concept concepts::defs::common_reference_with |
Initial value:=
concepts::common_reference_with_ < T, U >
◆ common_reference_with [2/2]
template<typename T , typename U >
concept concepts::defs::defer::common_reference_with |
Initial value:=
defs::common_reference_with < T, U >
◆ common_with [1/2]
template<typename T , typename U >
concept concepts::defs::common_with |
Initial value:=
concepts::common_with_ < T, U >
◆ common_with [2/2]
template<typename T , typename U >
concept concepts::defs::defer::common_with |
Initial value:=
defs::common_with < T, U >
◆ constructible_from [1/2]
template<typename T , typename... Args>
concept concepts::defs::constructible_from |
Initial value:=
destructible<T> &&
std::is_constructible< T, Args... >::value
◆ constructible_from [2/2]
template<typename T , typename... Args>
concept concepts::defs::defer::constructible_from |
Initial value:=
defs::constructible_from < T , Args... >
◆ convertible_to [1/2]
template<typename From , typename To >
concept concepts::defs::convertible_to |
Initial value:=
implicitly_convertible_to<From, To> &&
explicitly_convertible_to<From, To>
◆ convertible_to [2/2]
template<typename From , typename To >
concept concepts::defs::defer::convertible_to |
Initial value:=
defs::convertible_to < From, To >
◆ copy_constructible [1/2]
template<typename T >
concept concepts::defs::copy_constructible |
Initial value:=
move_constructible<T> &&
constructible_from<T, T &> &&
constructible_from<T, T const &> &&
constructible_from<T, T const> &&
convertible_to<T &, T> &&
convertible_to<T const &, T> &&
convertible_to<T const, T>
◆ copy_constructible [2/2]
template<typename T >
concept concepts::defs::defer::copy_constructible |
Initial value:=
defs::copy_constructible < T >
◆ copyable [1/2]
template<typename T >
concept concepts::defs::copyable |
Initial value:=
copy_constructible<T> &&
movable<T> &&
assignable_from<T &, T const &>
◆ copyable [2/2]
template<typename T >
concept concepts::defs::defer::copyable |
◆ default_constructible [1/2]
template<typename T >
concept concepts::defs::default_constructible |
◆ default_constructible [2/2]
template<typename T >
concept concepts::defs::defer::default_constructible |
Initial value:=
defs::default_constructible < T >
◆ derived_from [1/2]
template<typename T , typename U >
concept concepts::defs::derived_from |
Initial value:=
std::is_base_of< U, T >::value &&
concepts::derived_from_ < T, U >
◆ derived_from [2/2]
template<typename T , typename U >
concept concepts::defs::defer::derived_from |
Initial value:=
defs::derived_from < T, U >
◆ destructible [1/2]
template<typename T >
concept concepts::defs::destructible |
Initial value:=
std::is_nothrow_destructible<T>::value
◆ destructible [2/2]
template<typename T >
concept concepts::defs::defer::destructible |
Initial value:=
defs::destructible < T >
◆ equality_comparable [1/2]
template<typename T >
concept concepts::defs::equality_comparable |
Initial value:=
detail::weakly_equality_comparable_with_<T, T>
◆ equality_comparable [2/2]
template<typename T >
concept concepts::defs::defer::equality_comparable |
Initial value:=
defs::equality_comparable < T >
◆ equality_comparable_with [1/2]
template<typename T , typename U >
concept concepts::defs::equality_comparable_with |
Initial value:=
equality_comparable<T> &&
equality_comparable<U> &&
detail::weakly_equality_comparable_with_<T, U> &&
common_reference_with<detail::as_cref_t<T>, detail::as_cref_t<U>> &&
concepts::equality_comparable_with_ < T, U >
◆ equality_comparable_with [2/2]
template<typename T , typename U >
concept concepts::defs::defer::equality_comparable_with |
Initial value:=
defs::equality_comparable_with < T, U >
◆ integral [1/2]
template<typename T >
concept concepts::defs::integral |
Initial value:=
std::is_integral<T>::value
◆ integral [2/2]
template<typename T >
concept concepts::defs::defer::integral |
◆ is_true
template<bool B>
concept concepts::defs::defer::is_true |
◆ movable [1/2]
template<typename T >
concept concepts::defs::movable |
Initial value:=
std::is_object<T>::value &&
move_constructible<T> &&
assignable_from<T &, T> &&
swappable<T>
◆ movable [2/2]
template<typename T >
concept concepts::defs::defer::movable |
◆ move_constructible [1/2]
template<typename T >
concept concepts::defs::move_constructible |
Initial value:=
constructible_from<T, T> &&
convertible_to<T, T>
◆ move_constructible [2/2]
template<typename T >
concept concepts::defs::defer::move_constructible |
Initial value:=
defs::move_constructible < T >
◆ or_v
template<bool... Bs>
constexpr bool concepts::or_v |
|
constexpr |
Initial value:=
!std::is_same< detail::bools<Bs..., false>, detail::bools<false, Bs...> >::value
◆ regular [1/2]
template<typename T >
concept concepts::defs::regular |
Initial value:=
semiregular<T> &&
equality_comparable<T>
◆ regular [2/2]
template<typename T >
concept concepts::defs::defer::regular |
◆ same_as [1/2]
template<typename A , typename B >
concept concepts::defs::same_as |
Initial value:=
std::is_same< A, B >::value && std::is_same< B, A >::value
◆ same_as [2/2]
template<typename A , typename B >
concept concepts::defs::defer::same_as |
◆ satisfies [1/2]
template<class T , template< typename... > class Trait, typename... Args>
concept concepts::defs::satisfies |
Initial value:=
static_cast<bool>(Trait<T, Args...>::type::value)
◆ satisfies [2/2]
template<class T , template< typename... > class Trait, typename... Args>
concept concepts::defs::defer::satisfies |
Initial value:=
defs::satisfies < T , Trait, Args... >
◆ semiregular [1/2]
template<typename T >
concept concepts::defs::semiregular |
Initial value:=
copyable<T> &&
default_constructible<T>
◆ semiregular [2/2]
template<typename T >
concept concepts::defs::defer::semiregular |
Initial value:=
defs::semiregular < T >
◆ signed_integral [1/2]
template<typename T >
concept concepts::defs::signed_integral |
Initial value:=
integral<T> &&
std::is_signed<T>::value
◆ signed_integral [2/2]
template<typename T >
concept concepts::defs::defer::signed_integral |
Initial value:=
defs::signed_integral < T >
◆ swappable [1/2]
template<typename T >
concept concepts::defs::swappable |
Initial value:=
(
concepts::swap(t, u)
)
◆ swappable [2/2]
template<typename T >
concept concepts::defs::defer::swappable |
◆ swappable_with [1/2]
template<typename T , typename U >
concept concepts::defs::swappable_with |
Initial value:=
common_reference_with<detail::as_cref_t<T>, detail::as_cref_t<U>> &&
(
concepts::swap(((decltype( t )&&) t ), ((decltype( t )&&) t )),
concepts::swap(((decltype( u )&&) u ), ((decltype( u )&&) u )),
concepts::swap(((decltype( u )&&) u ), ((decltype( t )&&) t )),
concepts::swap(((decltype( t )&&) t ), ((decltype( u )&&) u ))
)
◆ swappable_with [2/2]
template<typename T , typename U >
concept concepts::defs::defer::swappable_with |
Initial value:=
defs::swappable_with < T, U >
◆ totally_ordered [1/2]
template<typename T >
concept concepts::defs::totally_ordered |
Initial value:=
equality_comparable<T> &&
requires( detail::as_cref_t<T> t , detail::as_cref_t<T> u )
(
t < u ? 1 : 0,
t > u ? 1 : 0,
u <= t ? 1 : 0,
u >= t ? 1 : 0
)
◆ totally_ordered [2/2]
template<typename T >
concept concepts::defs::defer::totally_ordered |
Initial value:=
defs::totally_ordered < T >
◆ totally_ordered_with [1/2]
template<typename T , typename U >
concept concepts::defs::totally_ordered_with |
Initial value:=
requires( detail::as_cref_t<T> t , detail::as_cref_t<U> u )
(
t < u ? 1 : 0,
t > u ? 1 : 0,
t <= u ? 1 : 0,
t >= u ? 1 : 0,
u < t ? 1 : 0,
u > t ? 1 : 0,
u <= t ? 1 : 0,
u >= t ? 1 : 0
) &&
totally_ordered<T> &&
totally_ordered<U> &&
equality_comparable_with<T, U> &&
common_reference_with<detail::as_cref_t<T>, detail::as_cref_t<U>> &&
concepts::totally_ordered_with_ < T, U >
◆ totally_ordered_with [2/2]
template<typename T , typename U >
concept concepts::defs::defer::totally_ordered_with |
Initial value:=
defs::totally_ordered_with < T, U >
◆ type
template<typename... Ts>
concept concepts::defs::defer::type |
◆ unsigned_integral [1/2]
template<typename T >
concept concepts::defs::unsigned_integral |
Initial value:=
integral<T> &&
!signed_integral<T>
◆ unsigned_integral [2/2]
template<typename T >
concept concepts::defs::defer::unsigned_integral |
Initial value:=
defs::unsigned_integral < T >
◆ weakly_equality_comparable_with_
template<typename T , typename U >
concept concepts::detail::weakly_equality_comparable_with_ |
Initial value:=
requires( detail::as_cref_t<T> t , detail::as_cref_t<U> u )
(
(t == u) ? 1 : 0,
(t != u) ? 1 : 0,
(u == t) ? 1 : 0,
(u != t) ? 1 : 0
)
Definition: shared.hpp:69
auto partition_copy(Rng &&rng, O0 o0, O1 o1, C pred, P proj=P{}) -> partition_copy_result< safe_iterator_t< Rng >, O0, O1 > requires input_range< Rng > &&weakly_incrementable< O0 > &&weakly_incrementable< O1 > &&indirectly_copyable< iterator_t< Rng >, O0 > &&indirectly_copyable< iterator_t< Rng >, O1 > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: partition_copy.hpp:83
auto shuffle(Rng &&rng, Gen &&rand=detail::get_random_engine()) -> safe_iterator_t< Rng > requires random_access_range< Rng > &&permutable< iterator_t< Rng >> &&uniform_random_bit_generator< std::remove_reference_t< Gen >> &&convertible_to< invoke_result_t< Gen & >, iter_difference_t< iterator_t< Rng >>>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: shuffle.hpp:69
auto max_element(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_strict_weak_order< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: max_element.hpp:54
compose< quote< _t >, quote_i< T, C > > quote_trait_i
Turn a trait template C taking literals of type T into an invocable.
Definition: meta.hpp:960
auto lower_bound(I first, S last, V const &val, C pred=C{}, P proj=P{}) -> I requires forward_iterator< I > &&sentinel_for< S, I > &&indirect_strict_weak_order< C, V const *, projected< I, P >>
function template lower_bound
Definition: lower_bound.hpp:45
Definition: range_fwd.hpp:536
Definition: arithmetic.hpp:54
auto replace_copy(Rng &&rng, O out, T1 const &old_value, T2 const &new_value, P proj={}) -> replace_copy_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&output_iterator< O, T2 const & > &&indirectly_copyable< iterator_t< Rng >, O > &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, T1 const * >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: replace_copy.hpp:77
Definition: slice.hpp:286
defer< id, T > id
Definition: meta.hpp:585
auto set_symmetric_difference(Rng1 &&rng1, Rng2 &&rng2, O out, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> set_symmetric_difference_result< safe_iterator_t< Rng1 >, safe_iterator_t< Rng2 >, O > requires range< Rng1 > &&range< Rng2 > &&mergeable< iterator_t< Rng1 >, iterator_t< Rng2 >, O, C, P1, P2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: set_algorithm.hpp:417
meta::if_c< std::is_reference< T >)||copyable< T >, T > any_cast(any &)
Definition: any.hpp:184
auto set_intersection(Rng1 &&rng1, Rng2 &&rng2, O out, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> O requires range< Rng1 > &&range< Rng2 > &&mergeable< iterator_t< Rng1 >, iterator_t< Rng2 >, O, C, P1, P2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: set_algorithm.hpp:244
auto partial_sort(I first, I middle, S last, C pred=C{}, P proj=P{}) -> I requires sortable< I, C, P > &&random_access_iterator< I > &&sentinel_for< S, I >
function template partial_sort
Definition: partial_sort.hpp:42
Definition: subrange.hpp:202
constexpr inserter_fn inserter
Definition: insert_iterators.hpp:178
Definition: shared.hpp:71
meta::size_t< sizeof(T)> sizeof_
An alias that computes the size of the type T.
Definition: meta.hpp:824
auto upper_bound(Rng &&rng, V const &val, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_strict_weak_order< C, V const *, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: upper_bound.hpp:57
Definition: stream_iterators.hpp:82
Definition: common_iterator.hpp:65
constexpr _crend_::fn crend
Definition: access.hpp:662
auto set_difference(Rng1 &&rng1, Rng2 &&rng2, O out, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> set_difference_result< safe_iterator_t< Rng1 >, O > requires range< Rng1 > &&range< Rng2 > &&mergeable< iterator_t< Rng1 >, iterator_t< Rng2 >, O, C, P1, P2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: set_algorithm.hpp:327
typename T::type _t
Type alias for T::type.
Definition: meta.hpp:141
Definition: operations.hpp:90
Definition: concepts.hpp:294
Definition: unique.hpp:37
constexpr auto && for_each
for_each(List, UnaryFunction) calls the UnaryFunction for each argument in the List.
Definition: meta.hpp:2844
Definition: operations.hpp:578
Definition: stream_iterators.hpp:35
bool_< 0==size< L >::type::value > empty
An Boolean integral constant wrapper around true if L is an empty type list; false,...
Definition: meta.hpp:2199
Definition: concepts.hpp:606
Definition: concepts.hpp:712
Definition: drop_exactly.hpp:157
std::integral_constant< decltype(T::type::value &U::type::value), T::type::value &U::type::value > bit_and
An integral constant wrapper around the result of bitwise-and'ing the two wrapped integers T::type::v...
Definition: meta.hpp:274
Definition: not_fn.hpp:74
Definition: range_fwd.hpp:636
auto is_sorted_until(I first, S last, R pred=R{}, P proj=P{}) -> I requires forward_iterator< I > &&sentinel_for< S, I > &&indirect_strict_weak_order< R, projected< I, P >>
template function is_sorted_until
Definition: is_sorted_until.hpp:51
Definition: operations.hpp:487
Users can specialize this to hook the common_reference_with concept.
Definition: type_traits.hpp:279
auto unique_copy(Rng &&rng, O out, C pred=C{}, P proj=P{}) -> unique_copy_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&indirect_relation< C, projected< iterator_t< Rng >, P >> &&weakly_incrementable< O > &&indirectly_copyable< iterator_t< Rng >, O > &&(forward_iterator< iterator_t< Rng >>||forward_iterator< O >||indirectly_copyable_storable< iterator_t< Rng >, O >)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: unique_copy.hpp:150
defer< and_, Bs... > and_
Definition: meta.hpp:1435
detail::is_valid_< T > is_valid
For testing whether a deferred computation will succeed in a let or a lambda.
Definition: meta.hpp:3569
Definition: concepts.hpp:41
Definition: for_each.hpp:97
integer_sequence< std::size_t, Is... > index_sequence
A container for a sequence of compile-time integer constants of type std::size_t.
Definition: meta.hpp:447
std::integral_constant< decltype(T::type::value+U::type::value), T::type::value+U::type::value > plus
An integral constant wrapper around the result of adding the two wrapped integers T::type::value and ...
Definition: meta.hpp:197
auto make_heap(I first, S last, C pred=C{}, P proj=P{}) -> I requires random_access_iterator< I > &&sentinel_for< S, I > &&sortable< I, C, P >
function template make_heap
Definition: heap_algorithm.hpp:358
Reversed the source range in-place.
Definition: reverse.hpp:35
auto partial_sort(Rng &&rng, iterator_t< Rng > middle, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires sortable< iterator_t< Rng >, C, P > &&random_access_range< Rng >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: partial_sort.hpp:66
auto adjacent_find(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_relation< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: adjacent_find.hpp:58
Definition: range_fwd.hpp:628
Definition: access.hpp:160
auto equal_range(Rng &&rng, V const &val, C pred=C{}, P proj=P{}) -> safe_subrange_t< Rng > requires forward_range< Rng > &&indirect_strict_weak_order< C, V const *, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: equal_range.hpp:105
defer< first, Pair > first
Definition: meta.hpp:2231
constexpr at_fn at
Checked indexed range access.
Definition: operations.hpp:62
Definition: arithmetic.hpp:65
auto minmax_element(Rng &&rng, C pred=C{}, P proj=P{}) -> minmax_element_result< safe_iterator_t< Rng >> requires forward_range< Rng > &&indirect_strict_weak_order< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: minmax_element.hpp:92
Definition: concepts.hpp:301
constexpr make_pipeable_fn make_pipeable
Definition: pipeable.hpp:64
constexpr make_tuple_fn make_tuple
Definition: tuple_algorithm.hpp:187
constexpr auto operator()(Rng &&rng) const -> range_reference_t< Rng > requires forward_range< Rng > &&forwarding_range_< Rng >
Definition: operations.hpp:111
Definition: stride.hpp:313
auto make_heap(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires random_access_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: heap_algorithm.hpp:374
Definition: range_fwd.hpp:512
Definition: set_algorithm.hpp:585
auto min_element(I first, S last, C pred=C{}, P proj=P{}) -> I requires forward_iterator< I > &&sentinel_for< S, I > &&indirect_strict_weak_order< C, projected< I, P >>
function template min_element
Definition: min_element.hpp:40
Definition: basic_iterator.hpp:46
constexpr tuple_for_each_fn tuple_for_each
Definition: tuple_algorithm.hpp:176
Definition: remove.hpp:36
Definition: range_fwd.hpp:712
Definition: sample.hpp:227
auto transform(Rng0 &&rng0, I1Ref &&begin1, O out, F fun, P0 proj0=P0{}, P1 proj1=P1{}) -> binary_transform_result< safe_iterator_t< Rng0 >, uncvref_t< I1Ref >, O > requires input_range< Rng0 > &&input_iterator< uncvref_t< I1Ref >> &&weakly_incrementable< O > &©_constructible< F > &&writable< O, indirect_result_t< F &, projected< iterator_t< Rng0 >, P0 >, projected< uncvref_t< I1Ref >, P1 >>>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: transform.hpp:176
Definition: range_fwd.hpp:176
Definition: repeat.hpp:102
auto reverse_copy(Rng &&rng, O out) -> reverse_copy_result< safe_iterator_t< Rng >, O > requires bidirectional_range< Rng > &&weakly_incrementable< O > &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: reverse_copy.hpp:56
constexpr indirect_fn indirect
Definition: indirect.hpp:83
constexpr next_fn next
Definition: operations.hpp:335
A type-erased view.
Definition: any_view.hpp:547
View a \0-terminated C string (e.g. from a const char*) as a range.
Definition: c_str.hpp:63
Definition: remove_if.hpp:187
Definition: drop_while.hpp:86
constexpr auto back() const -> range_reference_t< D< True > const > requires True &&common_range< D< True > const > &&bidirectional_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:268
friend auto operator<<(std::ostream &sout, Derived const &rng) -> std::ostream &requires True &&input_range< D< True > const >
Print a range to an ostream.
Definition: interface.hpp:495
auto partition(Rng &&rng, C pred, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&permutable< iterator_t< Rng >> &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: partition.hpp:116
Definition: drop_while.hpp:125
constexpr friend auto operator|(T &&t, copy_fn) -> detail::decay_t< T > requires constructible_from< detail::decay_t< T >, T >
Definition: copy.hpp:43
Definition: optional.hpp:45
Definition: tuple_algorithm.hpp:178
at_c< L, N::type::value > at
Return the N th element in the meta::list L.
Definition: meta.hpp:1937
auto find_end(Rng1 &&rng1, Rng2 &&rng2, R pred=R{}, P proj=P{}) -> safe_subrange_t< Rng1 > requires forward_range< Rng1 > &&forward_range< Rng2 > &&indirect_relation< R, projected< iterator_t< Rng1 >, P >, iterator_t< Rng2 >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: find_end.hpp:214
Definition: insert_iterators.hpp:67
Definition: for_each.hpp:110
Definition: adjacent_difference.hpp:60
Definition: partial_sum.hpp:180
Definition: operations.hpp:364
Definition: delimit.hpp:38
constexpr auto empty() const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0))) -> bool requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >)&&sized_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:167
auto count(Rng &&rng, V const &val, P proj=P{}) -> iter_difference_t< iterator_t< Rng >> requires input_range< Rng > &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, V const * >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: count.hpp:53
constexpr tuple_foldl_fn tuple_foldl
Definition: tuple_algorithm.hpp:152
Users can specialize this to hook the common_reference_with concept.
Definition: type_traits.hpp:355
Definition: range_fwd.hpp:724
constexpr auto at(range_difference_t< D< True >> n) const -> range_reference_t< D< True > const > requires True &&random_access_range< D< True > const > &&sized_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:306
Definition: insert_iterators.hpp:129
Definition: chunk.hpp:423
Definition: repeat_n.hpp:110
Definition: linear_distribute.hpp:36
auto all_of(Rng &&rng, F pred, P proj=P{}) -> bool requires input_range< Rng > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: all_of.hpp:52
defer< second, Pair > second
Definition: meta.hpp:2236
typename Fn::template invoke< Args... > invoke
Evaluate the invocable Fn with the arguments Args.
Definition: meta.hpp:541
_t< detail::_or_< Bs... > > or_
Logically OR together all the integral constant-wrapped Boolean parameters, with short-circuiting.
Definition: meta.hpp:1423
defer< _t, T > _t
Definition: meta.hpp:157
Definition: unique.hpp:38
Definition: intersperse.hpp:219
constexpr auto find_first_of(Rng0 &&rng0, Rng1 &&rng1, R pred=R{}, P0 proj0=P0{}, P1 proj1=P1{}) -> safe_iterator_t< Rng0 > requires input_range< Rng0 > &&forward_range< Rng1 > &&indirect_relation< R, projected< iterator_t< Rng0 >, P0 >, projected< iterator_t< Rng1 >, P1 >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: find_first_of.hpp:77
constexpr auto operator()(Args &&... args) &&-> bool requires predicate< FD, Args... >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: not_fn.hpp:67
constexpr copy_fn copy
Definition: copy.hpp:53
constexpr tuple_transform_fn tuple_transform
Definition: tuple_algorithm.hpp:107
auto to() -> detail::to_container_fn< detail::from_range< ContT >>
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:437
Definition: reference_wrapper.hpp:75
constexpr make_common_tuple_fn make_common_tuple
Definition: common_tuple.hpp:314
std::integral_constant< decltype(T::type::value/U::type::value), T::type::value/U::type::value > divides
An integral constant wrapper around the result of dividing the two wrapped integers T::type::value an...
Definition: meta.hpp:218
Definition: split.hpp:608
Definition: range_fwd.hpp:581
Definition: split_when.hpp:163
_t< detail::front_< L > > front
Return the first element in meta::list L.
Definition: meta.hpp:2038
Definition: set_algorithm.hpp:410
bool_< T::type::value !=U::type::value > not_equal_to
A Boolean integral constant wrapper around the result of comparing T::type::value and U::type::value ...
Definition: meta.hpp:243
Definition: sliding.hpp:363
constexpr auto end() const -> detail::facade_sentinel_t< D const > requires same_as< D, Derived >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: facade.hpp:124
Definition: counted.hpp:89
std::integral_constant< decltype(T::type::value *U::type::value), T::type::value *U::type::value > multiplies
An integral constant wrapper around the result of multiplying the two wrapped integers T::type::value...
Definition: meta.hpp:211
Definition: take_while.hpp:111
Definition: comparisons.hpp:60
auto is_permutation(Rng1 &&rng1, Rng2 &&rng2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> bool requires forward_range< Rng1 > &&forward_range< Rng2 > &&indirectly_comparable< iterator_t< Rng1 >, iterator_t< Rng2 >, C, P1, P2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: permutation.hpp:239
auto set_union(Rng1 &&rng1, Rng2 &&rng2, O out, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> set_union_result< safe_iterator_t< Rng1 >, safe_iterator_t< Rng2 >, O > requires range< Rng1 > &&range< Rng2 > &&mergeable< iterator_t< Rng1 >, iterator_t< Rng2 >, O, C, P1, P2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: set_algorithm.hpp:167
Given a source range, unary predicate, and optional projection, present a view of the elements that d...
Definition: remove_if.hpp:147
Definition: concepts.hpp:643
auto find_if_not(Rng &&rng, F pred, P proj=P{}) -> safe_iterator_t< Rng > requires input_range< Rng > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: find_if_not.hpp:62
auto min_element(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_strict_weak_order< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: min_element.hpp:54
bool_<(T::type::value > U::type::value)> greater
A Boolean integral constant wrapper around true if T::type::value is greater than U::type::value; fal...
Definition: meta.hpp:249
Definition: common.hpp:59
Definition: unbounded.hpp:50
constexpr iter_distance_compare_fn iter_distance_compare
Definition: operations.hpp:484
Definition: compressed_pair.hpp:104
Definition: range_fwd.hpp:477
auto next_permutation(Rng &&rng, C pred=C{}, P proj=P{}) -> bool requires bidirectional_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: permutation.hpp:304
Definition: set_algorithm.hpp:814
_t< detail::find_index_< L, T > > find_index
Finds the index of the first occurrence of the type T within the list L. Returns #meta::npos if the t...
Definition: meta.hpp:2283
if_< bool_< If >, Args... > if_c
Definition: meta.hpp:1235
constexpr back_inserter_fn back_inserter
Definition: insert_iterators.hpp:77
void void_
An alias for void.
Definition: meta.hpp:597
Definition: concepts.hpp:342
Definition: partial_sum.hpp:191
Definition: cache1.hpp:35
Definition: common_tuple.hpp:532
requires True && forward_range(input_range< D< True > & > &&sized_range< D< True > & >)) const expr auto operator[](detail
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:379
Definition: operations.hpp:411
Definition: optional.hpp:47
Definition: concepts.hpp:667
constexpr auto empty() noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0))) -> bool requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True >>)&&sized_range< D< True >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:158
concept range_impl_
Range concepts below.
Definition: concepts.hpp:79
Definition: adaptor.hpp:107
auto sample(IRng &&rng, ORng &&out, Gen &&gen=detail::get_random_engine()) -> sample_result< safe_iterator_t< IRng >, safe_iterator_t< ORng >> requires input_range< IRng > &&range< ORng > &&indirectly_copyable< iterator_t< IRng >, iterator_t< ORng >> &&uniform_random_bit_generator< std::remove_reference_t< Gen >> &&(random_access_iterator< iterator_t< ORng >>||forward_range< IRng >||sized_range< IRng >)&&(forward_range< ORng >||sized_range< ORng >)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: sample.hpp:204
constexpr auto equal(I0 begin0, S0 end0, I1 begin1, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> bool requires input_iterator< I0 > &&sentinel_for< S0, I0 > &&input_iterator< I1 > &&indirectly_comparable< I0, I1, C, P0, P1 >
function template equal
Definition: equal.hpp:66
meta::if_c< std::is_reference< R >::value, meta::_t< std::remove_reference< R > > &&, detail::decay_t< R > > move_t
Definition: move.hpp:59
Definition: drop_while.hpp:107
Definition: generate_n.hpp:40
constexpr auto minmax(std::initializer_list< T > const &&rng, C pred=C{}, P proj=P{}) -> minmax_result< T > requires copyable< T > &&indirect_strict_weak_order< C, projected< T const *, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: minmax.hpp:111
constexpr auto back() -> range_reference_t< D< True >> requires True &&common_range< D< True >> &&bidirectional_range< D< True >>
Access the last element in a range:
Definition: interface.hpp:261
std::integral_constant< decltype(T::type::value ^ U::type::value), T::type::value ^ U::type::value > bit_xor
An integral constant wrapper around the result of bitwise-exclusive-or'ing the two wrapped integers T...
Definition: meta.hpp:288
Definition: traits.hpp:47
Definition: generate.hpp:94
Definition: pipeable.hpp:69
auto swap_ranges(I1 begin1, S1 end1, I2 begin2) -> swap_ranges_result< I1, I2 > requires input_iterator< I1 > &&sentinel_for< S1, I1 > &&input_iterator< I2 > &&indirectly_swappable< I1, I2 >
function template swap_ranges
Definition: swap_ranges.hpp:40
_t< detail::_and_< Bs... > > and_
Logically AND together all the integral constant-wrapped Boolean parameters, with short-circuiting.
Definition: meta.hpp:1375
Definition: range_fwd.hpp:440
Given a source range and a unary predicate, present a view of the elements that satisfy the predicate...
Definition: filter.hpp:54
Definition: chunk.hpp:397
Definition: comparisons.hpp:27
Definition: indirect.hpp:33
defer< uncurry, Fn > uncurry
Definition: meta.hpp:1061
std::integral_constant< decltype(-T::type::value), -T::type::value > negate
An integral constant wrapper around the result of negating the wrapped integer T::type::value.
Definition: meta.hpp:224
auto fill_n(O first, iter_difference_t< O > n, V const &val) -> O requires output_iterator< O, V const & >
function template equal
Definition: fill_n.hpp:37
auto replace(Rng &&rng, T1 const &old_value, T2 const &new_value, P proj={}) -> safe_iterator_t< Rng > requires input_range< Rng > &&writable< iterator_t< Rng >, T2 const & > &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, T1 const * >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: replace.hpp:55
Definition: drop_last.hpp:346
Definition: stride.hpp:35
Definition: range_fwd.hpp:520
Definition: not_fn.hpp:33
Definition: filter.hpp:67
auto remove_copy(Rng &&rng, O out, T const &val, P proj=P{}) -> remove_copy_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&weakly_incrementable< O > &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, T const * > &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: remove_copy.hpp:66
constexpr auto operator[](range_difference_t< D< True >> n) const -> range_reference_t< D< True > const > requires True &&random_access_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:284
Definition: operations.hpp:543
detail::on_< Fns... > on_
Use as on<Fn, Gs...>. Creates an invocable that applies invocable Fn to the result of applying invoca...
Definition: meta.hpp:1112
_t< detail::_if_< Args... > > if_
Select one type or another depending on a compile-time Boolean.
Definition: meta.hpp:1211
Definition: common.hpp:171
Definition: take_while.hpp:123
constexpr const Derived & derived() const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:137
constexpr auto operator()(Rng &&rng) const -> cache1_view< all_t< Rng >> requires viewable_range< Rng > &&input_range< Rng > &&constructible_from< range_value_t< Rng >, range_reference_t< Rng >>
Caches the most recent element within the view so that dereferencing the view's iterator multiple tim...
Definition: cache1.hpp:174
Definition: bind_back.hpp:167
auto is_heap(Rng &&rng, C pred=C{}, P proj=P{}) -> bool requires random_access_range< Rng > &&indirect_strict_weak_order< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: heap_algorithm.hpp:148
_t< detail::count_< L, T > > count
Count the number of times a type T appears in the list L.
Definition: meta.hpp:2693
auto generate(Rng &&rng, F fun) -> generate_result< safe_iterator_t< Rng >, F > requires invocable< F & > &&output_range< Rng, invoke_result_t< F & >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: generate.hpp:55
Definition: facade.hpp:69
Definition: operations.hpp:443
auto for_each(Rng &&rng, F fun, P proj=P{}) -> for_each_result< safe_iterator_t< Rng >, F > requires input_range< Rng > &&indirectly_unary_invocable< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: for_each.hpp:58
Definition: concepts.hpp:710
Definition: access.hpp:285
auto lower_bound(Rng &&rng, V const &val, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_strict_weak_order< C, V const *, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: lower_bound.hpp:59
auto remove(Rng &&rng, T const &val, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&permutable< iterator_t< Rng >> &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, T const * >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: remove.hpp:64
auto stable_sort(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires sortable< iterator_t< Rng >, C, P > &&random_access_range< Rng >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: stable_sort.hpp:219
Definition: push_back.hpp:74
Get a cursor from a basic_iterator.
Definition: basic_iterator.hpp:834
defer< front, L > front
Definition: meta.hpp:2045
auto none_of(Rng &&rng, F pred, P proj=P{}) -> bool requires input_range< Rng > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: none_of.hpp:53
Definition: partial_sum.hpp:90
Definition: take_while.hpp:174
Definition: range_fwd.hpp:480
constexpr iter_size_fn iter_size
Definition: operations.hpp:502
defer< bind_front, Fn, Ts... > bind_front
Definition: meta.hpp:989
Definition: common_tuple.hpp:300
Definition: exclusive_scan.hpp:148
An iota view in a closed range.
Definition: range_fwd.hpp:584
Definition: group_by.hpp:177
constexpr auto equal(Rng0 &&rng0, Rng1 &&rng1, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> bool requires input_range< Rng0 > &&input_range< Rng1 > &&indirectly_comparable< iterator_t< Rng0 >, iterator_t< Rng1 >, C, P0, P1 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: equal.hpp:150
Definition: cartesian_product.hpp:426
Definition: concepts.hpp:305
Definition: pipeable.hpp:45
auto binary_search(Rng &&rng, V const &val, C pred=C{}, P proj=P{}) -> bool requires forward_range< Rng > &&indirect_strict_weak_order< C, V const *, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: binary_search.hpp:62
Definition: stream_iterators.hpp:145
constexpr auto empty() const noexcept(noexcept(bool(ranges::begin(std::declval< D< True > const & >())==ranges::end(std::declval< D< True > const & >())))) -> bool requires True &&(!detail::has_fixed_size_(Cardinality)) &&forward_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:187
defer< let, As... > let
Definition: meta.hpp:3634
Definition: insert_iterators.hpp:116
Definition: take_last.hpp:42
friend auto operator<<(std::ostream &sout, Derived &rng) -> std::ostream &requires True &&(!range< D< True > const >)&&input_range< D< True >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:503
Lazily applies an unary function to each element in the source range that returns another range (poss...
Definition: for_each.hpp:43
constexpr move_into_fn move_into
Definition: move_iterators.hpp:396
_t< detail::_if_< bool_< If >, Args... > > if_c
Select one type or another depending on a compile-time Boolean.
Definition: meta.hpp:1216
Definition: group_by.hpp:165
Definition: concepts.hpp:52
constexpr _iter_swap_::fn iter_swap
Definition: access.hpp:253
Definition: shuffle.hpp:36
constexpr front_inserter_fn front_inserter
Definition: insert_iterators.hpp:126
static constexpr T value
Definition: static_const.hpp:23
Definition: operations.hpp:107
auto is_partitioned(Rng &&rng, C pred, P proj=P{}) -> bool requires input_range< Rng > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: is_partitioned.hpp:63
Definition: common.hpp:154
Definition: range_fwd.hpp:676
_t< detail::count_if_< L, Fn > > count_if
Count the number of times the predicate Fn evaluates to true for all the elements in the list L.
Definition: meta.hpp:2755
bool_<!B > not_c
Logically negate the Boolean parameter.
Definition: meta.hpp:1320
constexpr not_fn_fn not_fn
Definition: not_fn.hpp:88
Definition: in_place.hpp:26
Definition: unstable_remove_if.hpp:39
Distributes n values linearly in the closed interval [from, to].
Definition: linear_distribute.hpp:100
Definition: tuple_algorithm.hpp:154
Definition: range_fwd.hpp:596
Definition: adjacent_remove_if.hpp:147
constexpr make_ostream_joiner_fn make_ostream_joiner
Definition: stream_iterators.hpp:142
Definition: range_fwd.hpp:396
drop< L, min< find_index< L, T >, size< L > >> find
Return the tail of the list L starting at the first occurrence of T, if any such element exists; the ...
Definition: meta.hpp:2356
Definition: arithmetic.hpp:34
auto partition_copy(I first, S last, O0 o0, O1 o1, C pred, P proj=P{}) -> partition_copy_result< I, O0, O1 > requires input_iterator< I > &&sentinel_for< S, I > &&weakly_incrementable< O0 > &&weakly_incrementable< O1 > &&indirectly_copyable< I, O0 > &&indirectly_copyable< I, O1 > &&indirect_unary_predicate< C, projected< I, P >>
function template partition_copy
Definition: partition_copy.hpp:52
Definition: reverse.hpp:138
auto for_each_n(Rng &&rng, range_difference_t< Rng > n, F fun, P proj=P{}) -> safe_iterator_t< Rng > requires input_range< Rng > &&indirectly_unary_invocable< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: for_each_n.hpp:57
Definition: operations.hpp:303
constexpr auto operator()(CallArgs &&... cargs) &noexcept(is_nothrow_invocable_v< Fn &, CallArgs..., Args &... >) -> invoke_result_t< Fn &, CallArgs..., Args &... >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: bind_back.hpp:57
auto remove_copy_if(Rng &&rng, O out, C pred, P proj=P{}) -> remove_copy_if_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&weakly_incrementable< O > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >> &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: remove_copy_if.hpp:64
Definition: reference_wrapper.hpp:152
Definition: remove.hpp:92
auto partition_point(I first, S last, C pred, P proj=P{}) -> I requires forward_iterator< I > &&sentinel_for< S, I > &&indirect_unary_predicate< C, projected< I, P >>
function template partition_point
Definition: partition_point.hpp:52
Definition: concepts.hpp:299
Definition: getlines.hpp:32
Definition: replace.hpp:116
auto is_sorted(Rng &&rng, R rel=R{}, P proj=P{}) -> bool requires forward_range< Rng > &&indirect_strict_weak_order< R, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: is_sorted.hpp:60
auto unstable_remove_if(Rng &&rng, C pred, P proj=P{}) -> safe_iterator_t< Rng > requires bidirectional_range< Rng > &&common_range< Rng > &&permutable< iterator_t< Rng >> &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: unstable_remove_if.hpp:72
Definition: addressof.hpp:34
Definition: comparisons.hpp:49
meta::size_t< L::size()> size
An integral constant wrapper that is the size of the meta::list L.
Definition: meta.hpp:1664
auto nth_element(Rng &&rng, iterator_t< Rng > nth, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires random_access_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: nth_element.hpp:313
Definition: drop_while.hpp:35
auto fill(Rng &&rng, V const &val) -> safe_iterator_t< Rng > requires output_range< Rng, V const & >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: fill.hpp:46
auto generate_n(O first, iter_difference_t< O > n, F fun) -> generate_n_result< O, F > requires invocable< F & > &&output_iterator< O, invoke_result_t< F & >>
function template generate_n
Definition: generate_n.hpp:43
auto copy_if(Rng &&rng, O out, F pred, P proj=P{}) -> copy_if_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&weakly_incrementable< O > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >> &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: copy_if.hpp:65
auto merge(I0 begin0, S0 end0, I1 begin1, S1 end1, O out, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> merge_result< I0, I1, O > requires sentinel_for< S0, I0 > &&sentinel_for< S1, I1 > &&mergeable< I0, I1, O, C, P0, P1 >
function template merge
Definition: merge.hpp:68
std::integral_constant< bool, B > bool_
An integral constant wrapper for bool.
Definition: meta.hpp:168
Definition: cartesian_product.hpp:129
auto adjacent_remove_if(Rng &&rng, Pred pred, Proj proj={}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_relation< Pred, projected< iterator_t< Rng >, Proj >> &&permutable< iterator_t< Rng >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: adjacent_remove_if.hpp:75
Definition: drop_last.hpp:335
Definition: move_iterators.hpp:191
Definition: take_exactly.hpp:145
Definition: concepts.hpp:619
Definition: remove_if.hpp:39
Definition: memory.hpp:163
Definition: pipeable.hpp:75
auto merge(Rng0 &&rng0, Rng1 &&rng1, O out, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> merge_result< safe_iterator_t< Rng0 >, safe_iterator_t< Rng1 >, O > requires range< Rng0 > &&range< Rng1 > &&mergeable< iterator_t< Rng0 >, iterator_t< Rng1 >, O, C, P0, P1 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: merge.hpp:105
Definition: adaptor.hpp:109
meta::_t< detail::inherit_< L > > inherit
A type that inherits from all the types in the list.
Definition: meta.hpp:3082
Definition: memory.hpp:106
Definition: range_fwd.hpp:796
auto lexicographical_compare(I0 begin0, S0 end0, I1 begin1, S1 end1, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> bool requires input_iterator< I0 > &&sentinel_for< S0, I0 > &&input_iterator< I1 > &&sentinel_for< S1, I1 > &&indirect_strict_weak_order< C, projected< I0, P0 >, projected< I1, P1 >>
function template lexicographical_compare
Definition: lexicographical_compare.hpp:44
auto copy_n(I first, iter_difference_t< I > n, O out) -> copy_n_result< I, O > requires input_iterator< I > &&weakly_incrementable< O > &&indirectly_copyable< I, O >
function template copy_n
Definition: copy_n.hpp:45
Definition: conversion.hpp:33
auto remove_if(I first, S last, C pred, P proj=P{}) -> I requires permutable< I > &&sentinel_for< S, I > &&indirect_unary_predicate< C, projected< I, P >>
function template remove_if
Definition: remove_if.hpp:42
Definition: concepts.hpp:654
static constexpr auto size() noexcept -> std::size_t requires True &&(Cardinality >=0)
If the size of the range is known at compile-time and finite, return it.
Definition: interface.hpp:216
bool_<(T::type::value<=U::type::value)> less_equal
A Boolean integral constant wrapper around true if T::type::value is less than or equal to U::type::v...
Definition: meta.hpp:267
constexpr index_fn index
Unchecked indexed range access.
Definition: operations.hpp:87
Definition: shared.hpp:105
auto rotate_copy(Rng &&rng, iterator_t< Rng > middle, O out) -> rotate_copy_result< safe_iterator_t< Rng >, O > requires range< Rng > &&weakly_incrementable< O > &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: rotate_copy.hpp:56
Definition: concepts.hpp:58
defer< min, Ts... > min
Definition: meta.hpp:2183
auto upper_bound(I first, S last, V const &val, C pred=C{}, P proj=P{}) -> I requires forward_iterator< I > &&sentinel_for< S, I > &&indirect_strict_weak_order< C, V const *, projected< I, P >>
function template upper_bound
Definition: upper_bound.hpp:43
Definition: reference_wrapper.hpp:123
Definition: move_iterators.hpp:32
auto replace_if(Rng &&rng, C pred, T const &new_value, P proj=P{}) -> safe_iterator_t< Rng > requires input_range< Rng > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >> &&writable< iterator_t< Rng >, T const & >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: replace_if.hpp:54
auto remove_if(Rng &&rng, C pred, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&permutable< iterator_t< Rng >> &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: remove_if.hpp:64
Definition: sliding.hpp:374
Definition: stream_iterators.hpp:130
drop< L, min< reverse_find_index< L, T >, size< L > >> reverse_find
Return the tail of the list L starting at the last occurrence of T, if any such element exists; the e...
Definition: meta.hpp:2401
Given a source range, unary predicate, and optional projection, present a view of the elements that s...
Definition: filter.hpp:81
Definition: tuple_algorithm.hpp:40
Users should specialize this to hook the common_with concept until std gets a SFINAE-friendly std::co...
Definition: type_traits.hpp:241
auto replace_copy_if(Rng &&rng, O out, C pred, T const &new_value, P proj={}) -> replace_copy_if_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&output_iterator< O, T const & > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >> &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: replace_copy_if.hpp:69
_t< extension::apply< Fn, L > > apply
Applies the invocable Fn using the types in the type list L as arguments.
Definition: meta.hpp:1030
Definition: generate.hpp:41
bool_< T::type::value==U::type::value > equal_to
A Boolean integral constant wrapper around the result of comparing T::type::value and U::type::value ...
Definition: meta.hpp:237
Definition: insert_iterators.hpp:167
Definition: drop_exactly.hpp:43
list< F, S > pair
A list with exactly two elements.
Definition: meta.hpp:2214
Definition: optional.hpp:35
std::integral_constant< std::size_t, N > size_t
An integral constant wrapper for std::size_t.
Definition: meta.hpp:163
constexpr compose_fn compose
Definition: compose.hpp:77
A utility for constructing a view from a (derived) type that implements begin and end cursors.
Definition: range_fwd.hpp:444
_t< detail::is_callable_< T > > is_callable
An alias for std::true_type if T::invoke exists and names a class template or alias template; otherwi...
Definition: meta.hpp:689
Definition: concepts.hpp:665
constexpr auto front() -> range_reference_t< D< True >> requires True &&forward_range< D< True >>
Access the first element in a range:
Definition: interface.hpp:247
auto reverse(Rng &&rng) -> safe_iterator_t< Rng > requires bidirectional_range< Rng > &&permutable< I >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: reverse.hpp:75
Definition: action.hpp:76
Definition: take_last.hpp:32
Definition: exclusive_scan.hpp:47
compose< quote< not_ >, Fn > not_fn
Logically negate the result of invocable Fn.
Definition: meta.hpp:2977
Definition: stable_sort.hpp:36
Definition: drop_exactly.hpp:129
defer< equal_to, T, U > equal_to
Definition: meta.hpp:341
defer< or_, Bs... > or_
Definition: meta.hpp:1440
auto copy_backward(Rng &&rng, O out) -> copy_backward_result< safe_iterator_t< Rng >, O > requires bidirectional_range< Rng > &&bidirectional_iterator< O > &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: copy_backward.hpp:56
Definition: range_fwd.hpp:604
Definition: comparisons.hpp:82
Definition: adjacent_remove_if.hpp:37
Definition: range_fwd.hpp:174
fold< pop_front< list< Ts... > >, front< list< Ts... > >, quote< detail::min_ > > min_
An integral constant wrapper around the minimum of Ts::type::value...
Definition: meta.hpp:2165
Definition: unreachable_sentinel.hpp:26
Definition: dangling.hpp:33
constexpr auto copy(Rng &&rng, O out) -> copy_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&weakly_incrementable< O > &&indirectly_copyable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: copy.hpp:57
Definition: operations.hpp:38
auto rotate(I first, I middle, S last) -> subrange< I > requires permutable< I > &&sentinel_for< S, I >
function template rotate
Definition: rotate.hpp:200
friend auto operator<<(std::ostream &sout, Derived &&rng) -> std::ostream &requires True &&(!range< D< True > const >)&&input_range< D< True >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:511
constexpr auto at(range_difference_t< D< True >> n) -> range_reference_t< D< True >> requires True &&random_access_range< D< True >> &&sized_range< D< True >>
Returns a reference to the element at specified location pos, with bounds checking.
Definition: interface.hpp:293
_t< detail::back_< L > > back
Return the last element in meta::list L.
Definition: meta.hpp:2071
Definition: range_fwd.hpp:563
auto adjacent_find(I first, S last, C pred=C{}, P proj=P{}) -> I requires forward_iterator< I > &&sentinel_for< S, I > &&indirect_relation< C, projected< I, P >>
function template adjacent_find
Definition: adjacent_find.hpp:42
_t< detail::as_list_< detail::uncvref_t< Sequence > >> as_list
Turn a type into an instance of meta::list in a way determined by meta::apply.
Definition: meta.hpp:2929
constexpr auto max(std::initializer_list< T > const &&rng, C pred=C{}, P proj=P{}) -> T requires copyable< T > &&indirect_strict_weak_order< C, projected< T const *, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: max.hpp:72
auto find_if_not(I first, S last, F pred, P proj=P{}) -> I requires input_iterator< I > &&sentinel_for< S, I > &&indirect_unary_predicate< F, projected< I, P >>
template function find_if_not
Definition: find_if_not.hpp:49
Definition: default_sentinel.hpp:25
constexpr auto operator()(Args &&... args) const &-> bool requires predicate< FD const &, Args... >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: not_fn.hpp:60
Definition: reverse_iterator.hpp:121
Definition: comparisons.hpp:71
Definition: remove.hpp:75
constexpr make_common_pair_fn make_common_pair
Definition: common_tuple.hpp:547
auto partial_sort_copy(InRng &&in_rng, OutRng &&out_rng, C pred=C{}, PI in_proj=PI{}, PO out_proj=PO{}) -> safe_iterator_t< OutRng > requires input_range< InRng > &&random_access_range< OutRng > &&indirectly_copyable< iterator_t< InRng >, iterator_t< OutRng >> &&sortable< iterator_t< OutRng >, C, PO > &&indirect_strict_weak_order< C, projected< iterator_t< InRng >, PI >, projected< iterator_t< OutRng >, PO >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: partial_sort_copy.hpp:92
Definition: arithmetic.hpp:73
auto count_if(Rng &&rng, R pred, P proj=P{}) -> iter_difference_t< iterator_t< Rng >> requires input_range< Rng > &&indirect_unary_predicate< R, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: count_if.hpp:53
_t< detail::reverse_find_index_< L, T > > reverse_find_index
Finds the index of the last occurrence of the type T within the list L. Returns #meta::npos if the ty...
Definition: meta.hpp:2338
Definition: delimit.hpp:103
auto mismatch(I1 begin1, S1 end1, I2 begin2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> mismatch_result< I1, I2 > requires input_iterator< I1 > &&sentinel_for< S1, I1 > &&input_iterator< I2 > &&indirect_relation< C, projected< I1, P1 >, projected< I2, P2 >>
function template mismatch
Definition: mismatch.hpp:55
Definition: slice.hpp:190
std::integral_constant< decltype(T::type::value % U::type::value), T::type::value % U::type::value > modulus
An integral constant wrapper around the remainder of dividing the two wrapped integers T::type::value...
Definition: meta.hpp:231
bool_<(T::type::value >=U::type::value)> greater_equal
A Boolean integral constant wrapper around true if T::type::value is greater than or equal to U::type...
Definition: meta.hpp:261
constexpr bool is_v
is_v Test whether a type T is an instantiation of class template C.
Definition: meta_fwd.hpp:261
Definition: range_fwd.hpp:715
auto is_heap_until(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires random_access_range< Rng > &&indirect_strict_weak_order< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: heap_algorithm.hpp:115
Definition: chunk.hpp:412
constexpr _size_::fn size
Definition: primitives.hpp:152
constexpr auto operator()(Rng &&rng, Int n) const -> range_reference_t< Rng > requires random_access_range< Rng > &&integral< Int > &&forwarding_range_< Rng >
Definition: operations.hpp:71
Definition: take_while.hpp:35
Unchecked indexed range access.
Definition: operations.hpp:67
Definition: semiregular_box.hpp:67
auto search(Rng1 &&rng1, Rng2 &&rng2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> safe_subrange_t< Rng1 > requires forward_range< Rng1 > &&forward_range< Rng2 > &&indirectly_comparable< iterator_t< Rng1 >, iterator_t< Rng2 >, C, P1, P2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: search.hpp:197
Definition: range_fwd.hpp:793
constexpr T::type::value_type _v
Variable alias for T::type::value.
Definition: meta.hpp:148
constexpr enumerate_fn enumerate
Definition: operations.hpp:576
Definition: static_const.hpp:21
Definition: insert_iterators.hpp:31
auto lexicographical_compare(Rng0 &&rng0, Rng1 &&rng1, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> bool requires input_range< Rng0 > &&input_range< Rng1 > &&indirect_strict_weak_order< C, projected< iterator_t< Rng0 >, P0 >, projected< iterator_t< Rng1 >, P1 >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: lexicographical_compare.hpp:73
Definition: intersperse.hpp:206
Definition: range_fwd.hpp:612
Definition: counted.hpp:71
Definition: concepts.hpp:630
Definition: split_when.hpp:48
Definition: range_fwd.hpp:398
Definition: concepts.hpp:303
Definition: tuple_algorithm.hpp:109
_t< detail::reverse_find_if_< L, Fn > > reverse_find_if
Return the tail of the list L starting at the last element A such that invoke<Fn, A>::value is true,...
Definition: meta.hpp:2553
Definition: take_exactly.hpp:173
constexpr auto operator[](range_difference_t< D< True >> n) -> range_reference_t< D< True >> requires True &&random_access_range< D< True >>
Simple indexing:
Definition: interface.hpp:276
Definition: indirect.hpp:72
Definition: stride.hpp:302
front< pop_front< Pair > > second
Retrieve the first element of the pair Pair.
Definition: meta.hpp:2224
constexpr auto ends_with(Rng0 &&rng0, Rng1 &&rng1, C pred=C{}, P0 proj0=P0{}, P1 proj1=P1{}) -> bool requires(forward_range< Rng0 >||(input_range< Rng0 > &&sized_range< Rng0 >)) &&(forward_range< Rng1 >||(input_range< Rng1 > &&sized_range< Rng1 >)) &&indirectly_comparable< iterator_t< Rng0 >, iterator_t< Rng1 >, C, P0, P1 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: ends_with.hpp:77
Definition: for_each.hpp:83
Definition: pipeable.hpp:66
front< Pair > first
Retrieve the first element of the pair Pair.
Definition: meta.hpp:2219
Definition: concepts.hpp:700
Definition: remove.hpp:39
constexpr unwrap_reference_fn unwrap_reference
Definition: reference_wrapper.hpp:182
Definition: single.hpp:108
std::integral_constant< decltype(~T::type::value), ~T::type::value > bit_not
An integral constant wrapper around the result of bitwise-complementing the wrapped integer T::type::...
Definition: meta.hpp:294
Definition: drop_while.hpp:42
Definition: concepts.hpp:651
Definition: adjacent_remove_if.hpp:159
auto is_sorted_until(Rng &&rng, R pred=R{}, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_strict_weak_order< R, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: is_sorted_until.hpp:71
Definition: overload.hpp:31
auto operator()(Rng &&rng) const -> cycled_view< all_t< Rng >> requires viewable_range< Rng > &&forward_range< Rng >
Definition: cycle.hpp:214
Definition: range_fwd.hpp:474
Definition: range_fwd.hpp:465
Definition: adjacent_filter.hpp:158
Definition: range_fwd.hpp:684
auto inplace_merge(Rng &&rng, iterator_t< Rng > middle, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires bidirectional_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: inplace_merge.hpp:284
Definition: range_fwd.hpp:571
constexpr _empty_::fn empty
Definition: primitives.hpp:313
Definition: getlines.hpp:98
Definition: split.hpp:495
Definition: range_fwd.hpp:652
auto find_if(Rng &&rng, F pred, P proj=P{}) -> safe_iterator_t< Rng > requires input_range< Rng > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: find_if.hpp:62
Definition: filter.hpp:32
_t< detail::coerce_indices_< T, From, make_index_sequence< detail::range_distance_(From, To)> >> integer_range
Makes the integer sequence [From, To).
Definition: meta.hpp:493
constexpr make_compressed_tuple_fn make_compressed_tuple
Definition: compressed_pair.hpp:113
Definition: range_fwd.hpp:171
auto pop_heap(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires random_access_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: heap_algorithm.hpp:337
auto partition_point(Rng &&rng, C pred, P proj=P{}) -> safe_iterator_t< Rng > requires forward_range< Rng > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: partition_point.hpp:84
auto move_backward(Rng &&rng, O out) -> move_backward_result< safe_iterator_t< Rng >, O > requires bidirectional_range< Rng > &&bidirectional_iterator< O > &&indirectly_movable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: move_backward.hpp:56
Definition: concepts.hpp:848
Definition: concepts.hpp:636
Definition: bind_back.hpp:36
auto move(Rng &&rng, O out) -> move_result< safe_iterator_t< Rng >, O > requires input_range< Rng > &&weakly_incrementable< O > &&indirectly_movable< iterator_t< Rng >, O >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: move.hpp:56
meta::size_t< std::size_t(-1)> npos
A special value used to indicate no matches. It equals the maximum value representable by std::size_t...
Definition: meta.hpp:1644
Definition: insert.hpp:201
Definition: replace_if.hpp:117
Definition: remove_if.hpp:170
constexpr auto front() const -> range_reference_t< D< True > const > requires True &&forward_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:254
constexpr auto end() -> detail::facade_sentinel_t< D > requires same_as< D, iter_transform2_view< Rng1, Rng2, Fun > >
Let d be static_cast<Derived &>(*this). Let e be std::as_const(d).end_cursor() if that expression is ...
Definition: facade.hpp:116
Definition: unique.hpp:50
constexpr back_fn back
Definition: operations.hpp:104
category
An enum that denotes the supported subset of range concepts supported by a range.
Definition: any_view.hpp:42
constexpr _crbegin_::fn crbegin
Definition: access.hpp:641
constexpr overload_fn overload
Definition: overload.hpp:135
Definition: replace_if.hpp:136
constexpr get_cursor_fn get_cursor
Definition: basic_iterator.hpp:855
constexpr tuple_apply_fn tuple_apply
Definition: tuple_algorithm.hpp:58
Definition: range_fwd.hpp:448
constexpr make_compressed_pair_fn make_compressed_pair
Definition: compressed_pair.hpp:181
Definition: set_algorithm.hpp:611
Definition: split_when.hpp:204
Definition: adaptor.hpp:104
defer< if_, Args... > if_
Definition: meta.hpp:1230
constexpr _end_::fn end
Definition: access.hpp:323
Definition: range_fwd.hpp:394
Definition: comparisons.hpp:38
constexpr _begin_::fn begin
Definition: access.hpp:179
auto generate(O first, S last, F fun) -> generate_result< O, F > requires invocable< F & > &&output_iterator< O, invoke_result_t< F & >> &&sentinel_for< S, O >
function template generate_n
Definition: generate.hpp:43
Definition: range_fwd.hpp:483
Definition: range_fwd.hpp:392
Definition: move_iterators.hpp:204
Definition: shared.hpp:36
constexpr make_view_closure_fn make_view_closure
Definition: view.hpp:103
Definition: repeat_n.hpp:42
Definition: replace.hpp:89
Definition: arithmetic.hpp:24
constexpr make_action_closure_fn make_action_closure
Definition: action.hpp:48
Definition: common_type.hpp:37
Definition: for_each.hpp:53
constexpr action_closure< unique_fn > unique
Definition: unique.hpp:62
constexpr _cdata_::fn cdata
Definition: primitives.hpp:241
_t< detail::find_if_< L, Fn > > find_if
Return the tail of the list L starting at the first element A such that invoke<Fn,...
Definition: meta.hpp:2474
constexpr bind_back_fn bind_back
Definition: bind_back.hpp:184
defer< size, L > size
Definition: meta.hpp:1671
std::integral_constant< char, Ch > char_
An integral constant wrapper for char.
Definition: meta.hpp:178
Definition: basic_iterator.hpp:492
constexpr _rend_::fn rend
Definition: access.hpp:620
Definition: sample.hpp:83
Checked indexed range access.
Definition: operations.hpp:35
Inclusive range of indices: [from, to].
Definition: indices.hpp:53
constexpr on_fn on
Definition: on.hpp:60
Definition: accumulate.hpp:34
constexpr _rbegin_::fn rbegin
Definition: access.hpp:494
Lazily pairs each element in a source range with its corresponding index.
Definition: enumerate.hpp:96
Definition: concepts.hpp:813
Definition: set_algorithm.hpp:221
Definition: set_algorithm.hpp:241
defer< max, Ts... > max
Definition: meta.hpp:2188
constexpr auto operator()(Rng &&rng) const -> range_reference_t< Rng > requires common_range< Rng > &&bidirectional_range< Rng > &&forwarding_range_< Rng >
Definition: operations.hpp:94
Definition: common_tuple.hpp:95
Definition: concepts.hpp:46
Definition: delimit.hpp:81
Definition: insert_iterators.hpp:80
Definition: action.hpp:38
Definition: memory.hpp:217
constexpr auto begin() -> detail::facade_iterator_t< D > requires same_as< D, Derived >
Let d be static_cast<Derived &>(*this). Let b be std::as_const(d).begin_cursor() if that expression i...
Definition: facade.hpp:95
_t< id< T > > id_t
An alias for type T. Useful in non-deduced contexts.
Definition: meta.hpp:577
Definition: const.hpp:112
not_< empty< find< L, T > >> in
A Boolean integral constant wrapper around true if there is at least one occurrence of T in L.
Definition: meta.hpp:3049
Definition: range_fwd.hpp:644
_t< detail::at_< L, N > > at_c
Return the N th element in the meta::list L.
Definition: meta.hpp:1930
Half-open range of indices: [from, to).
Definition: indices.hpp:34
constexpr distance_fn distance
Definition: operations.hpp:607
constexpr auto size() const -> detail::iter_size_t< iterator_t< D< True >>> requires True &&(Cardinality< 0) &&sized_sentinel_for< sentinel_t< D< True > const >, iterator_t< D< True > const >> &&forward_range< D< True > const >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:235
constexpr auto begin() const -> detail::facade_iterator_t< D const > requires same_as< D, Derived >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: facade.hpp:103
defer< invoke, Fn, Args... > invoke
Definition: meta.hpp:549
Definition: take_while.hpp:156
Definition: filter.hpp:97
Definition: inner_product.hpp:72
bool_<(T::type::value< U::type::value)> less
A Boolean integral constant wrapper around true if T::type::value is less than U::type::value; false,...
Definition: meta.hpp:255
Definition: operations.hpp:610
Definition: split_when.hpp:41
_t< _t< detail::let_< As... > >> let
A lexically scoped expression with local variables.
Definition: meta.hpp:3627
not_< empty< find_if< L, Fn > >> any_of
A Boolean integral constant wrapper around true if invoke<Fn, A>::value is true for any element A in ...
Definition: meta.hpp:3013
constexpr auto starts_with(R1 &&r1, R2 &&r2, Comp comp={}, Proj1 proj1={}, Proj2 proj2={}) -> bool requires input_range< R1 > &&input_range< R2 > &&indirectly_comparable< iterator_t< R1 >, iterator_t< R2 >, Comp, Proj1, Proj2 >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: starts_with.hpp:80
Definition: invoke.hpp:171
meta::size_t< alignof(T)> alignof_
An alias that computes the alignment required for any instance of the type T.
Definition: meta.hpp:831
Definition: operations.hpp:337
Definition: range_fwd.hpp:668
Definition: range_fwd.hpp:491
Definition: cache1.hpp:166
not_c< B::type::value > not_
Logically negate the integral constant-wrapped Boolean parameter.
Definition: meta.hpp:1325
defer< less, T, U > less
Definition: meta.hpp:356
constexpr auto find(Rng &&rng, V const &val, P proj=P{}) -> safe_iterator_t< Rng > requires input_range< Rng > &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, V const * >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: find.hpp:60
Definition: access.hpp:156
Definition: split.hpp:633
Definition: range_fwd.hpp:153
Definition: subrange.hpp:424
Definition: set_algorithm.hpp:390
Definition: compressed_pair.hpp:170
_t< detail::coerce_indices_< T, 0, make_index_sequence< static_cast< std::size_t >(N)> >> make_integer_sequence
Generate integer_sequence containing integer constants [0,1,2,...,N-1].
Definition: meta.hpp:481
Definition: invoke.hpp:87
constexpr auto size() -> detail::iter_size_t< iterator_t< D< True >>> requires True &&(Cardinality< 0) &&sized_sentinel_for< sentinel_t< D< True >>, iterator_t< D< True >>> &&forward_range< D< True >>
If sized_sentinel_for<sentinel_t<Derived>, iterator_t<Derived>> is satisfied, and if Derived is a for...
Definition: interface.hpp:225
Definition: concepts.hpp:708
auto to(Rng &&rng) -> ContT< range_value_t< Rng >> requires range< Rng > &&detail::convertible_to_cont< Rng, ContT< range_value_t< Rng >>>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: conversion.hpp:445
repeat_n_c< N::type::value, T > repeat_n
Generate list<T,T,T...T> of size N arguments.
Definition: meta.hpp:1867
constexpr iter_distance_fn iter_distance
Definition: operations.hpp:441
#define RANGES_FOR(VAR_DECL,...)
A range-based for macro, basically a hack until the built-in range-for can handle Ranges that have a ...
Definition: range_for.hpp:24
Returns a random sample of a range of length size(range).
Definition: sample.hpp:209
constexpr auto operator()(CallArgs &&... cargs) const &noexcept(is_nothrow_invocable_v< Fn const &, CallArgs..., Args const &... >) -> invoke_result_t< Fn const &, CallArgs..., Args const &... >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: bind_back.hpp:70
constexpr move_fn move
Definition: move.hpp:52
Definition: range_fwd.hpp:555
Definition: sliding.hpp:62
constexpr action_closure< stable_sort_fn > stable_sort
Definition: stable_sort.hpp:58
Definition: zip_with.hpp:369
std::integral_constant< decltype(T::type::value - U::type::value), T::type::value - U::type::value > minus
An integral constant wrapper around the result of subtracting the two wrapped integers T::type::value...
Definition: meta.hpp:204
_t< detail::repeat_n_c_< T, make_index_sequence< N > >> repeat_n_c
Generate list<T,T,T...T> of size N arguments.
Definition: meta.hpp:1860
Definition: range_fwd.hpp:756
empty< find_if< L, Fn > > none_of
A Boolean integral constant wrapper around true if invoke<Fn, A>::value is false for all elements A i...
Definition: meta.hpp:3031
Definition: concepts.hpp:331
_t< detail::make_indices_< N, index_sequence< 0 >, detail::strategy_(1, N)> > make_index_sequence
Generate index_sequence containing integer constants [0,1,2,...,N-1].
Definition: meta.hpp:473
Definition: tokenize.hpp:102
constexpr front_fn front
Definition: operations.hpp:120
auto rotate(Rng &&rng, I middle) -> safe_subrange_t< Rng > requires range< Rng > &&permutable< I >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: rotate.hpp:218
constexpr _cbegin_::fn cbegin
Definition: access.hpp:344
Definition: access.hpp:281
auto push_heap(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires random_access_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: heap_algorithm.hpp:278
defer< compose, Fns... > compose
Definition: meta.hpp:906
auto mismatch(Rng1 &&rng1, Rng2 &&rng2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> mismatch_result< safe_iterator_t< Rng1 >, safe_iterator_t< Rng2 >> requires input_range< Rng1 > &&input_range< Rng2 > &&indirect_relation< C, projected< iterator_t< Rng1 >, P1 >, projected< iterator_t< Rng2 >, P2 >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: mismatch.hpp:135
Definition: overload.hpp:119
Definition: range_fwd.hpp:499
Definition: traits.hpp:123
constexpr auto min(std::initializer_list< T > const &&rng, C pred=C{}, P proj=P{}) -> T requires copyable< T > &&indirect_strict_weak_order< C, projected< T const *, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: min.hpp:72
Definition: concat.hpp:387
requires(sizeof...(Ts) > 0) using lambda
For creating anonymous Invocables.
Definition: for_each.hpp:69
auto prev_permutation(Rng &&rng, C pred=C{}, P proj=P{}) -> bool requires bidirectional_range< Rng > &&sortable< iterator_t< Rng >, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: permutation.hpp:349
constexpr auto operator()(Rng &&rng, range_difference_t< Rng > n) const -> range_reference_t< Rng > requires random_access_range< Rng > &&sized_range< Rng > &&forwarding_range_< Rng >
Definition: operations.hpp:39
constexpr auto contains(Rng &&rng, const T &val, P proj={}) -> bool requires input_range< Rng > &&indirect_relation< equal_to, projected< iterator_t< Rng >, P >, const T * >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: contains.hpp:48
Definition: arithmetic.hpp:44
empty< find_if< L, not_fn< Fn > >> all_of
A Boolean integral constant wrapper around true if invoke<Fn, A>::value is true for all elements A in...
Definition: meta.hpp:2995
Definition: take_while.hpp:135
constexpr advance_fn advance
Definition: operations.hpp:209
auto sort(Rng &&rng, C pred=C{}, P proj=P{}) -> safe_iterator_t< Rng > requires sortable< iterator_t< Rng >, C, P > &&random_access_range< Rng >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: sort.hpp:215
Definition: common_tuple.hpp:317
Definition: range_fwd.hpp:620
auto search_n(Rng &&rng, iter_difference_t< iterator_t< Rng >> cnt, V const &val, C pred=C{}, P proj=P{}) -> safe_subrange_t< Rng > requires forward_range< Rng > &&indirectly_comparable< iterator_t< Rng >, V const *, C, P >
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: search_n.hpp:171
std::integral_constant< decltype(T::type::value|U::type::value), T::type::value|U::type::value > bit_or
An integral constant wrapper around the result of bitwise-or'ing the two wrapped integers T::type::va...
Definition: meta.hpp:281
Definition: range_fwd.hpp:799
Definition: range_fwd.hpp:764
constexpr distance_compare_fn distance_compare
Definition: operations.hpp:645
constexpr protect_fn protect
Protect a callable so that it can be safely used in a bind expression without accidentally becoming a...
Definition: bind.hpp:111
fold< pop_front< list< Ts... > >, front< list< Ts... > >, quote< detail::max_ > > max_
An integral constant wrapper around the maximum of Ts::type::value...
Definition: meta.hpp:2173
Definition: remove_if.hpp:44
constexpr ref_fn ref
Definition: reference_wrapper.hpp:147
Definition: intersperse.hpp:41
Definition: generate_n.hpp:101
Definition: drop_last.hpp:123
auto any_of(Rng &&rng, F pred, P proj=P{}) -> bool requires input_range< Rng > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: any_of.hpp:53
defer< bind_back, Fn, Ts... > bind_back
Definition: meta.hpp:994
_t< detail::is_< T, C > > is
is
Definition: meta.hpp:874
Definition: range_fwd.hpp:593
constexpr iter_enumerate_fn iter_enumerate
Definition: operations.hpp:409
auto includes(Rng1 &&rng1, Rng2 &&rng2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{}) -> bool requires input_range< Rng1 > &&input_range< Rng2 > &&indirect_strict_weak_order< C, projected< iterator_t< Rng1 >, P1 >, projected< iterator_t< Rng2 >, P2 >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: set_algorithm.hpp:86
constexpr _cend_::fn cend
Definition: access.hpp:365
Definition: action.hpp:135
Definition: optional.hpp:37
Definition: identity.hpp:24
constexpr auto empty() noexcept(noexcept(bool(ranges::begin(std::declval< D< True > & >())==ranges::end(std::declval< D< True > & >())))) -> bool requires True &&(!detail::has_fixed_size_(Cardinality)) &&forward_range< D< True >>
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: interface.hpp:177
Definition: scope_exit.hpp:27
constexpr prev_fn prev
Definition: operations.hpp:362
auto move_backward(I first, S end_, O out) -> move_backward_result< I, O > requires bidirectional_iterator< I > &&sentinel_for< S, I > &&bidirectional_iterator< O > &&indirectly_movable< I, O >
function template move_backward
Definition: move_backward.hpp:43
std::integral_constant< int, I > int_
An integral constant wrapper for int.
Definition: meta.hpp:173
Definition: adjacent_filter.hpp:147
concept view_
View concepts below.
Definition: concepts.hpp:281
Definition: compose.hpp:32
Returns an infinite range that endlessly repeats the source range.
Definition: cycle.hpp:210