Range-v3
Range algorithms, views, and actions for the Standard Library
concepts.hpp File Reference

Classes

struct  concepts::detail::and_< T, U >
 
struct  concepts::detail::and_< T, U >
 
struct  concepts::detail::boolean
 
struct  concepts::detail::boolean_< Fn >
 
struct  concepts::detail::bools<... >
 
struct  concepts::detail::false_type
 
struct  concepts::detail::first_impl< U >
 
struct  concepts::detail::ignore
 
struct  concepts::detail::Nil
 
struct  concepts::detail::not_< T >
 
struct  concepts::detail::or_< T, U >
 
struct  concepts::detail::or_< T, U >
 
struct  concepts::detail::tag<... >
 
struct  concepts::detail::true_type
 
struct  concepts::return_t_< typename >
 

Macros

#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
 

Typedefs

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
 

Functions

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)
 

Variables

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, intconcepts::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_
 

Macro Definition Documentation

◆ 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_INSTANCE(CPP_true(::concepts::detail::xNil{})) \
), \
> = {}) \
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_INSTANCE(CPP_true(::concepts::detail::xNil{})) \
), \
> = {}) \
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> \

Variable Documentation

◆ 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 &&
requires( T t , U && u )
(
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
Initial value:
=
defs::copyable < T >

◆ default_constructible [1/2]

template<typename T >
concept concepts::defs::default_constructible
Initial value:
=
constructible_from<T>

◆ 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
Initial value:
=
defs::integral < T >

◆ is_true

template<bool B>
concept concepts::defs::defer::is_true
Initial value:
=
defs::is_true < B >

◆ 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
Initial value:
=
defs::movable < T >

◆ 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
Initial value:
=
defs::regular < T >

◆ 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
Initial value:
=
defs::same_as < A, B >

◆ 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:
=
requires( T & t , T & u )
(
concepts::swap(t, u)
)

◆ swappable [2/2]

template<typename T >
concept concepts::defs::defer::swappable
Initial value:
=
defs::swappable < T >

◆ 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>> &&
requires( T && t , U && 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
Initial value:
=
defs::type < meta::list<Ts...> >

◆ 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
)
ranges::experimental::shared_closure
Definition: shared.hpp:69
ranges::partition_copy
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
ranges::shuffle
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
ranges::max_element
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
meta::quote_trait_i
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
ranges::lower_bound
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
generate.hpp
ranges::cycled_view
Definition: range_fwd.hpp:536
swap.hpp
ranges::bitwise_or
Definition: arithmetic.hpp:54
ranges::replace_copy
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
ranges::views::slice_fn
Definition: slice.hpp:286
meta::lazy::id
defer< id, T > id
Definition: meta.hpp:585
algorithm.hpp
ranges::set_symmetric_difference
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
ranges::any_cast
meta::if_c< std::is_reference< T >)||copyable< T >, T > any_cast(any &)
Definition: any.hpp:184
ranges::aux::copy_fn
Definition: copy.hpp:31
filter.hpp
ranges::set_intersection
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
ranges::partial_sort
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
join.hpp
equal.hpp
ranges::subrange
Definition: subrange.hpp:202
ranges::identity_adaptor
Definition: all.hpp:96
ranges::iota_fn
Definition: iota.hpp:29
ranges::transform2_view
Definition: transform.hpp:401
concepts.hpp
ranges::inserter
constexpr inserter_fn inserter
Definition: insert_iterators.hpp:178
ranges::experimental::shared_closure_base
Definition: shared.hpp:71
bind_back.hpp
identity.hpp
meta::sizeof_
meta::size_t< sizeof(T)> sizeof_
An alias that computes the size of the type T.
Definition: meta.hpp:824
ranges::views::iota_fn
Definition: iota.hpp:444
drop_last.hpp
ranges::upper_bound
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
ranges::ostream_joiner
Definition: stream_iterators.hpp:82
ranges::common_iterator
Definition: common_iterator.hpp:65
ranges::crend
constexpr _crend_::fn crend
Definition: access.hpp:662
ranges::set_difference
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
meta::_t
typename T::type _t
Type alias for T::type.
Definition: meta.hpp:141
ranges::back_fn
Definition: operations.hpp:90
partition_copy.hpp
ranges::range_tag
Definition: concepts.hpp:294
ranges::actions::unique_fn
Definition: unique.hpp:37
zip.hpp
find_if.hpp
meta::for_each
constexpr auto && for_each
for_each(List, UnaryFunction) calls the UnaryFunction for each argument in the List.
Definition: meta.hpp:2844
meta::push_back
apply< bind_back< quote< list >, Ts... >, L > push_back
Return a new meta::list by adding the element T to the back of L.
Definition: meta.hpp:2141
ranges::views::join_base_fn
Definition: join.hpp:523
ranges::distance_fn
Definition: operations.hpp:578
ranges::ostream_iterator
Definition: stream_iterators.hpp:35
meta::empty
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
concepts::detail::bools
Definition: concepts.hpp:606
concepts::detail::not_
Definition: concepts.hpp:712
primitives.hpp
scope_exit.hpp
ranges::views::drop_exactly_fn
Definition: drop_exactly.hpp:157
dangling.hpp
any_of.hpp
meta::bit_and
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
meta::transpose
fold< ListOfLists, repeat_n< size< front< ListOfLists > >, list<> >, bind_back< quote< transform >, quote< push_back > >> transpose
Given a list of lists of types ListOfLists, transpose the elements from the lists.
Definition: meta.hpp:2860
meta::partition
fold< L, pair< list<>, list<> >, detail::partition_< Fn > > partition
Returns a pair of lists, where the elements of L that satisfy the invocable Fn such that invoke<Fn,...
Definition: meta.hpp:3177
ranges::tail_view
Definition: tail.hpp:48
ranges::not_fn_fn
Definition: not_fn.hpp:74
meta::protect
detail::protect_< T > protect
For preventing the evaluation of a nested defered computation in a let or lambda expression.
Definition: meta.hpp:3582
ranges::views::all_fn
Definition: all.hpp:38
ranges::repeat_view
Definition: range_fwd.hpp:636
meta::replace
_t< detail::replace_< L, T, U > > replace
Return a new meta::list where all instances of type T have been replaced with U.
Definition: meta.hpp:2587
ranges::is_sorted_until
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
insert_iterators.hpp
minmax.hpp
generate.hpp
meta::detail::count_
Definition: meta.hpp:2652
split.hpp
ranges::iter_size_fn
Definition: operations.hpp:487
reference_wrapper.hpp
rotate.hpp
swap.hpp
concepts::basic_common_reference
Users can specialize this to hook the common_reference_with concept.
Definition: type_traits.hpp:279
ranges::unique_copy
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
ranges::protect_fn
Definition: bind.hpp:90
meta::lazy::and_
defer< and_, Bs... > and_
Definition: meta.hpp:1435
meta::is_valid
detail::is_valid_< T > is_valid
For testing whether a deferred computation will succeed in a let or a lambda.
Definition: meta.hpp:3569
set
Definition: concepts.hpp:41
c_str.hpp
delimit.hpp
ActionFn
ranges::yield_if_fn
Definition: for_each.hpp:97
meta::index_sequence
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
meta::plus
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
ranges::make_heap
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
meta::defer_i
A wrapper that defers the instantiation of a template C with integral constant parameters Is in a lam...
Definition: meta.hpp:797
ranges::actions::reverse_fn
Reversed the source range in-place.
Definition: reverse.hpp:35
ranges::partial_sort
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
ranges::adjacent_find
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
ranges::ref_view
Definition: range_fwd.hpp:628
ranges::is_nothrow_indirectly_movable
Definition: access.hpp:160
ranges::equal_range
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
meta::lazy::first
defer< first, Pair > first
Definition: meta.hpp:2231
ranges::at
constexpr at_fn at
Checked indexed range access.
Definition: operations.hpp:62
ranges::convert_to
Definition: arithmetic.hpp:65
ranges::minmax_element
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
const.hpp
ranges::bidirectional_range_tag
Definition: concepts.hpp:301
ranges::make_pipeable
constexpr make_pipeable_fn make_pipeable
Definition: pipeable.hpp:64
ranges::make_tuple
constexpr make_tuple_fn make_tuple
Definition: tuple_algorithm.hpp:187
type_traits.hpp
unique.hpp
ranges::front_fn::operator()
constexpr auto operator()(Rng &&rng) const -> range_reference_t< Rng > requires forward_range< Rng > &&forwarding_range_< Rng >
Definition: operations.hpp:111
ranges::views::stride_fn
Definition: stride.hpp:313
ranges::make_heap
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
meta::or_c
Logically OR together all the Boolean parameters.
Definition: meta.hpp:1396
ranges::const_view
Definition: range_fwd.hpp:512
iterator.hpp
ranges::views::set_union_base_fn
Definition: set_algorithm.hpp:585
move_backward.hpp
comparisons.hpp
ranges::min_element
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
ranges::basic_mixin
Definition: basic_iterator.hpp:46
ranges::tuple_for_each
constexpr tuple_for_each_fn tuple_for_each
Definition: tuple_algorithm.hpp:176
default_sentinel.hpp
ranges::actions::remove_fn
Definition: remove.hpp:36
repeat.hpp
ranges::iter_take_while_view
Definition: range_fwd.hpp:712
ranges::views::sample_fn
Definition: sample.hpp:227
ranges::transform
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 > &&copy_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
ranges::view_base
Definition: range_fwd.hpp:176
for_each.hpp
ranges::views::repeat_fn
Definition: repeat.hpp:102
ranges::reverse_copy
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
ranges::indirect
constexpr indirect_fn indirect
Definition: indirect.hpp:83
ranges::next
constexpr next_fn next
Definition: operations.hpp:335
ranges::any_view
A type-erased view.
Definition: any_view.hpp:547
ranges::views::c_str_fn
View a \0-terminated C string (e.g. from a const char*) as a range.
Definition: c_str.hpp:63
ranges::views::remove_if_fn
Definition: remove_if.hpp:187
ranges::views::drop_while_base_fn
Definition: drop_while.hpp:86
ranges::view_interface::back
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
ranges::view_interface::operator<<
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
ranges::partition
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
action.hpp
ranges::views::drop_while_fn
Definition: drop_while.hpp:125
ranges::aux::copy_fn::operator|
constexpr friend auto operator|(T &&t, copy_fn) -> detail::decay_t< T > requires constructible_from< detail::decay_t< T >, T >
Definition: copy.hpp:43
erase.hpp
ranges::nullopt_t
Definition: optional.hpp:45
ranges::make_tuple_fn
Definition: tuple_algorithm.hpp:178
meta::at
at_c< L, N::type::value > at
Return the N th element in the meta::list L.
Definition: meta.hpp:1937
ranges::find_end
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
ranges::back_inserter_fn
Definition: insert_iterators.hpp:67
ranges::actions::transform_fn
Definition: transform.hpp:35
ranges::lazy_yield_if_fn
Definition: for_each.hpp:110
ranges::adjacent_difference_fn
Definition: adjacent_difference.hpp:60
ranges::views::partial_sum_base_fn
Definition: partial_sum.hpp:180
ranges::iter_enumerate_fn
Definition: operations.hpp:364
remove.hpp
drop_while.hpp
ranges::delimit_view
Definition: delimit.hpp:38
ranges::transform_view
Definition: range_fwd.hpp:735
ranges::view_interface::empty
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
reverse.hpp
ranges::count
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
ranges::tuple_foldl
constexpr tuple_foldl_fn tuple_foldl
Definition: tuple_algorithm.hpp:152
any_view.hpp
concepts::common_reference
Users can specialize this to hook the common_reference_with concept.
Definition: type_traits.hpp:355
ranges::tokenize_view
Definition: range_fwd.hpp:724
ranges::view_interface::at
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
ranges::insert_iterator
Definition: insert_iterators.hpp:129
ranges::views::chunk_fn
Definition: chunk.hpp:423
ranges::views::repeat_n_fn
Definition: repeat_n.hpp:110
transform.hpp
ranges::views::linear_distribute_view
Definition: linear_distribute.hpp:36
transform.hpp
diffmax_t.hpp
ranges::all_of
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
meta::lazy::second
defer< second, Pair > second
Definition: meta.hpp:2236
counted.hpp
meta::invoke
typename Fn::template invoke< Args... > invoke
Evaluate the invocable Fn with the arguments Args.
Definition: meta.hpp:541
common.hpp
meta::or_
_t< detail::_or_< Bs... > > or_
Logically OR together all the integral constant-wrapped Boolean parameters, with short-circuiting.
Definition: meta.hpp:1423
meta::lazy::_t
defer< _t, T > _t
Definition: meta.hpp:157
ranges::views::unique_base_fn
Definition: unique.hpp:38
ranges::views::intersperse_fn
Definition: intersperse.hpp:219
lower_bound.hpp
partial_sort_copy.hpp
rotate_copy.hpp
ranges::find_first_of
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
remove_copy_if.hpp
counted_iterator.hpp
ranges::logical_negate::operator()
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
ranges::aux::copy
constexpr copy_fn copy
Definition: copy.hpp:53
ranges::tuple_transform
constexpr tuple_transform_fn tuple_transform
Definition: tuple_algorithm.hpp:107
ranges::to
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
ranges::reference_wrapper
Definition: reference_wrapper.hpp:75
ranges::make_common_tuple
constexpr make_common_tuple_fn make_common_tuple
Definition: common_tuple.hpp:314
linear_distribute.hpp
ranges::bind_element
Definition: bind.hpp:52
meta::divides
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
adjacent_remove_if.hpp
ranges::views::split_base_fn
Definition: split.hpp:608
zip_with.hpp
ranges::iota_view
Definition: range_fwd.hpp:581
ranges::views::split_when_base_fn
Definition: split_when.hpp:163
meta::front
_t< detail::front_< L > > front
Return the first element in meta::list L.
Definition: meta.hpp:2038
ranges::views::set_intersection_fn
Definition: set_algorithm.hpp:410
meta::not_equal_to
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
take_while.hpp
ranges::views::sliding_base_fn
Definition: sliding.hpp:363
ranges::view_facade::end
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
ranges::views::counted_fn
Definition: counted.hpp:89
meta::multiplies
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
ranges::views::iter_take_while_base_fn
Definition: take_while.hpp:111
ranges::less_equal
Definition: comparisons.hpp:60
ranges::is_permutation
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
istream.hpp
ranges::set_union
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
common_iterator.hpp
ranges::views::remove_if_base_fn
Given a source range, unary predicate, and optional projection, present a view of the elements that d...
Definition: remove_if.hpp:147
subrange.hpp
concepts::detail::true_type
Definition: concepts.hpp:643
unique.hpp
ranges::find_if_not
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
ranges::min_element
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
meta::greater
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
map.hpp
random.hpp
ranges::common_view
Definition: common.hpp:59
ranges::views::unbounded_fn
Definition: unbounded.hpp:50
lexicographical_compare.hpp
ranges::iter_distance_compare
constexpr iter_distance_compare_fn iter_distance_compare
Definition: operations.hpp:484
ranges::make_compressed_tuple_fn
Definition: compressed_pair.hpp:104
ranges::views::drop_fn
Definition: drop.hpp:163
ranges::istream_view
Definition: range_fwd.hpp:477
ranges::next_permutation
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
ranges::aux::move_fn
Definition: move.hpp:32
ranges::views::set_symmetric_difference_base_fn
Definition: set_algorithm.hpp:814
meta::find_index
_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
meta::fold
_t< detail::fold_< L, State, Fn > > fold
Return a new meta::list constructed by doing a left fold of the list L using binary invocable Fn and ...
Definition: meta.hpp:1555
meta::lazy::if_c
if_< bool_< If >, Args... > if_c
Definition: meta.hpp:1235
ranges::back_inserter
constexpr back_inserter_fn back_inserter
Definition: insert_iterators.hpp:77
meta::void_
void void_
An alias for void.
Definition: meta.hpp:597
ranges::sized_range_tag
Definition: concepts.hpp:342
ranges::views::partial_sum_fn
Definition: partial_sum.hpp:191
ranges::cache1_view
Definition: cache1.hpp:35
slice.hpp
view.hpp
transform.hpp
ranges::make_common_pair_fn
Definition: common_tuple.hpp:532
ranges::view_interface::forward_range
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
memory.hpp
find.hpp
ranges::iter_distance_fn
Definition: operations.hpp:411
ranges::nullopt_t::tag
Definition: optional.hpp:47
ranges::sized_sentinel_tag
Definition: concepts.hpp:667
bind.hpp
meta::detail::require_constant
Definition: meta_fwd.hpp:272
binary_search.hpp
ranges::view_interface::empty
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
ranges::range_impl_
concept range_impl_
Range concepts below.
Definition: concepts.hpp:79
meta::accumulate
fold< L, State, Fn > accumulate
An alias for meta::fold.
Definition: meta.hpp:1565
ranges::base_adaptor_sentinel
Definition: adaptor.hpp:107
ranges::sample
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
ranges::equal
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
box.hpp
ranges::aux::move_t
meta::if_c< std::is_reference< R >::value, meta::_t< std::remove_reference< R > > &&, detail::decay_t< R > > move_t
Definition: move.hpp:59
ranges::views::drop_while_bind_fn
Definition: drop_while.hpp:107
ranges::generate_n_view
Definition: generate_n.hpp:40
move_iterators.hpp
ranges::minmax
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
ranges::view_interface::back
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
meta::bit_xor
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
version.hpp
cycle.hpp
ranges::contiguous_iterator_tag
Definition: traits.hpp:47
ranges::views::generate_fn
Definition: generate.hpp:94
meta::push_front
apply< bind_front< quote< list >, Ts... >, L > push_front
Return a new meta::list by adding the element T to the front of L.
Definition: meta.hpp:2088
ranges::pipeable_access::impl
Definition: pipeable.hpp:69
ranges::views::keys_fn
Definition: map.hpp:96
ranges::swap_ranges
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
meta::and_
_t< detail::_and_< Bs... > > and_
Logically AND together all the integral constant-wrapped Boolean parameters, with short-circuiting.
Definition: meta.hpp:1375
ranges::basic_view
Definition: range_fwd.hpp:440
inplace_merge.hpp
ranges::views::cpp20_filter_base_fn
Given a source range and a unary predicate, present a view of the elements that satisfy the predicate...
Definition: filter.hpp:54
ranges::chunk_view
Definition: chunk.hpp:397
concepts.hpp
concepts.hpp
ranges::equal_to
Definition: comparisons.hpp:27
ranges::indirected
Definition: indirect.hpp:33
meta::defer
A wrapper that defers the instantiation of a template C with type parameters Ts in a lambda or let ex...
Definition: meta.hpp:786
meta::lazy::uncurry
defer< uncurry, Fn > uncurry
Definition: meta.hpp:1061
meta::negate
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
ranges::fill_n
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
unique_copy.hpp
remove_copy.hpp
ranges::replace
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
equal_range.hpp
ranges::views::drop_last_fn
Definition: drop_last.hpp:346
min.hpp
ranges::actions::stride_fn
Definition: stride.hpp:35
meta::lazy::transpose
defer< transpose, ListOfLists > transpose
Definition: meta.hpp:2867
ranges::iter_transform2_view
Definition: transform.hpp:198
ranges::counted_view
Definition: range_fwd.hpp:520
stride.hpp
ranges::logical_negate
Definition: not_fn.hpp:33
ranges::views::cpp20_filter_fn
Definition: filter.hpp:67
min_element.hpp
ranges::remove_copy
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
remove_if.hpp
range_for.hpp
conversion.hpp
ranges::view_interface::operator[]
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
meta::bind_back
An invocable that partially applies the invocable Fn by binding the arguments Us to the back of Fn.
Definition: meta.hpp:978
group_by.hpp
ranges::enumerate_fn
Definition: operations.hpp:543
meta::on_
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
meta::if_
_t< detail::_if_< Args... > > if_
Select one type or another depending on a compile-time Boolean.
Definition: meta.hpp:1211
operations.hpp
ranges::views::common_fn
Definition: common.hpp:171
ranges::views::iter_take_while_fn
Definition: take_while.hpp:123
meta::inc
std::integral_constant< decltype(T::type::value+1), T::type::value+1 > inc
An integral constant wrapper around the result of incrementing the wrapped integer T::type::value.
Definition: meta.hpp:185
ranges::view_interface::derived
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
ranges::views::cache1_fn::operator()
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
ranges::bind_back_fn
Definition: bind_back.hpp:167
ranges::is_heap
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
split_when.hpp
push_front.hpp
ref.hpp
meta::count
_t< detail::count_< L, T > > count
Count the number of times a type T appears in the list L.
Definition: meta.hpp:2693
ranges::generate
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
ranges::view_facade::view_as_cursor
Definition: facade.hpp:69
ranges::iter_distance_compare_fn
Definition: operations.hpp:443
ranges::views::zip_fn
Definition: zip.hpp:127
ranges::for_each
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
concepts::detail::or_
Definition: concepts.hpp:710
slice.hpp
find_if_not.hpp
ranges::is_nothrow_indirectly_swappable
Definition: access.hpp:285
copy_backward.hpp
ranges::lower_bound
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
shuffle.hpp
meta::detail::_nullptr_v
constexpr T * _nullptr_v()
Returns a T nullptr.
Definition: meta.hpp:121
basic_iterator.hpp
ranges::remove
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
ranges::stable_sort
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
integral_constant
ranges::push_back_fn
Definition: push_back.hpp:74
ranges::get_cursor_fn
Get a cursor from a basic_iterator.
Definition: basic_iterator.hpp:834
meta::lazy::front
defer< front, L > front
Definition: meta.hpp:2045
Element
meta::quote_i
Turn a template C taking literals of type T into a invocable.
Definition: meta.hpp:924
ranges::none_of
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
ranges::partial_sum_fn
Definition: partial_sum.hpp:90
ranges::views::take_while_fn
Definition: take_while.hpp:174
ranges::views::take_base_fn
Definition: take.hpp:270
ranges::iterator_range
Definition: range_fwd.hpp:480
semiregular_box_t< Pred >
ranges::views::trim_fn
Definition: trim.hpp:140
ranges::iter_size
constexpr iter_size_fn iter_size
Definition: operations.hpp:502
meta::lazy::bind_front
defer< bind_front, Fn, Ts... > bind_front
Definition: meta.hpp:989
count_if.hpp
ranges::views::ints_fn
Definition: iota.hpp:485
ranges::make_common_tuple_fn
Definition: common_tuple.hpp:300
ranges::views::exclusive_scan_base_fn
Definition: exclusive_scan.hpp:148
ranges::closed_iota_view
An iota view in a closed range.
Definition: range_fwd.hpp:584
ranges::views::group_by_fn
Definition: group_by.hpp:177
ranges::equal
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
chunk.hpp
upper_bound.hpp
ranges::views::cartesian_product_fn
Definition: cartesian_product.hpp:426
ranges::contiguous_range_tag
Definition: concepts.hpp:305
ranges::make_pipeable_fn
Definition: pipeable.hpp:45
on.hpp
ranges::binary_search
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
ranges::ostreambuf_iterator
Definition: stream_iterators.hpp:145
ranges::bad_any_cast
Definition: any.hpp:36
ranges::view_interface::empty
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
meta::lazy::let
defer< let, As... > let
Definition: meta.hpp:3634
ranges::front_inserter_fn
Definition: insert_iterators.hpp:116
minmax_element.hpp
ranges::views::take_last_fn
Definition: take_last.hpp:42
ranges::view_interface::operator<<
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
ranges::views::for_each_base_fn
Lazily applies an unary function to each element in the source range that returns another range (poss...
Definition: for_each.hpp:43
partial_sort.hpp
adjacent_remove_if.hpp
ranges::move_into
constexpr move_into_fn move_into
Definition: move_iterators.hpp:396
heap_algorithm.hpp
meta::if_c
_t< detail::_if_< bool_< If >, Args... > > if_c
Select one type or another depending on a compile-time Boolean.
Definition: meta.hpp:1216
ranges::views::group_by_base_fn
Definition: group_by.hpp:165
all_of.hpp
unordered_set
Definition: concepts.hpp:52
iter_swap
constexpr _iter_swap_::fn iter_swap
Definition: access.hpp:253
ranges::actions::shuffle_fn
Definition: shuffle.hpp:36
std_iterator_traits
ranges::front_inserter
constexpr front_inserter_fn front_inserter
Definition: insert_iterators.hpp:126
move.hpp
ranges::static_const::value
static constexpr T value
Definition: static_const.hpp:23
meta::dec
std::integral_constant< decltype(T::type::value - 1), T::type::value - 1 > dec
An integral constant wrapper around the result of decrementing the wrapped integer T::type::value.
Definition: meta.hpp:190
ranges::front_fn
Definition: operations.hpp:107
operations.hpp
ranges::is_partitioned
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
ranges::views::cpp20_common_fn
Definition: common.hpp:154
facade.hpp
ranges::stride_view
Definition: range_fwd.hpp:676
count.hpp
meta::count_if
_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
meta::list
A list of types.
Definition: meta.hpp:1651
meta::lazy::push_front
defer< push_front, Ts... > push_front
Definition: meta.hpp:2095
meta::not_c
bool_<!B > not_c
Logically negate the Boolean parameter.
Definition: meta.hpp:1320
ranges::not_fn
constexpr not_fn_fn not_fn
Definition: not_fn.hpp:88
ranges::in_place_t
Definition: in_place.hpp:26
ranges::actions::unstable_remove_if_fn
Definition: unstable_remove_if.hpp:39
ranges::views::linear_distribute_fn
Distributes n values linearly in the closed interval [from, to].
Definition: linear_distribute.hpp:100
ranges::tuple_for_each_fn
Definition: tuple_algorithm.hpp:154
ranges::join_with_view
Definition: range_fwd.hpp:596
ranges::views::adjacent_remove_if_base_fn
Definition: adjacent_remove_if.hpp:147
drop.hpp
ranges::make_ostream_joiner
constexpr make_ostream_joiner_fn make_ostream_joiner
Definition: stream_iterators.hpp:142
ranges::variant< I, S >
ranges::copy_tag
Definition: range_fwd.hpp:396
meta::find
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
ranges::minus
Definition: arithmetic.hpp:34
ranges::partition_copy
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
ranges::on_fn
Definition: on.hpp:49
copy.hpp
ranges::views::reverse_fn
Definition: reverse.hpp:138
ranges::for_each_n
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
ranges::next_fn
Definition: operations.hpp:303
ranges::detail::bind_back_fn_::operator()
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
meta::list::size
static constexpr std::size_t size() noexcept
Definition: meta.hpp:1655
meta::detail::count_if_
Definition: meta.hpp:2721
ranges::remove_copy_if
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
repeat_n.hpp
ranges::unwrap_reference_fn
Definition: reference_wrapper.hpp:152
ranges::views::remove_fn
Definition: remove.hpp:92
ranges::partition_point
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
ranges::forward_range_tag
Definition: concepts.hpp:299
meta::reverse
_t< detail::reverse_< L > > reverse
Return a new meta::list by reversing the elements in the list L.
Definition: meta.hpp:2964
ranges::getlines_view
Definition: getlines.hpp:32
ranges::views::replace_fn
Definition: replace.hpp:116
ranges::is_sorted
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
ranges::unstable_remove_if
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
ranges::views::addressof_fn
Definition: addressof.hpp:34
ranges::less
Definition: comparisons.hpp:49
meta::size
meta::size_t< L::size()> size
An integral constant wrapper that is the size of the meta::list L.
Definition: meta.hpp:1664
ranges::nth_element
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
ranges::actions::drop_while_fn
Definition: drop_while.hpp:35
ranges::fill
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
ranges::generate_n
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
ranges::copy_if
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
view.hpp
ranges::merge
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
meta::bool_
std::integral_constant< bool, B > bool_
An integral constant wrapper for bool.
Definition: meta.hpp:168
ranges::input_range_tag
Definition: concepts.hpp:297
Pipeable
ranges::cartesian_product_view
Definition: cartesian_product.hpp:129
ranges::adjacent_remove_if
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
ranges::views::tail_fn
Definition: tail.hpp:116
ranges::views::drop_last_base_fn
Definition: drop_last.hpp:335
ranges::make_move_iterator_fn
Definition: move_iterators.hpp:191
ranges::views::take_exactly_base_fn
Definition: take_exactly.hpp:145
concepts::return_t_
Definition: concepts.hpp:619
ranges::actions::remove_if_fn
Definition: remove_if.hpp:39
contains.hpp
ranges::iterator_wrapper
Definition: memory.hpp:163
adjacent_filter.hpp
ranges::pipeable_base
Definition: pipeable.hpp:75
ranges::merge
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
ends_with.hpp
ranges::adaptor_base
Definition: adaptor.hpp:109
ranges::views::trim_base_fn
Definition: trim.hpp:100
meta::inherit
meta::_t< detail::inherit_< L > > inherit
A type that inherits from all the types in the list.
Definition: meta.hpp:3082
ranges::views::take_fn
Definition: take.hpp:281
ranges::raw_storage_iterator
Definition: memory.hpp:106
ranges::zip_with_view
Definition: range_fwd.hpp:796
ranges::lexicographical_compare
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
ranges::copy_n
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
split.hpp
range.hpp
vector
Definition: conversion.hpp:33
ranges::remove_if
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
concepts::detail::first_impl
Definition: concepts.hpp:654
ranges::view_interface< cartesian_product_view< Views... >, Cardinality >::size
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
meta::less_equal
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
ranges::index
constexpr index_fn index
Unchecked indexed range access.
Definition: operations.hpp:87
enumerate.hpp
ranges::experimental::views::shared_fn
Definition: shared.hpp:105
ranges::rotate_copy
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
adjacent_find.hpp
unordered_multiset
Definition: concepts.hpp:58
meta::lazy::min
defer< min, Ts... > min
Definition: meta.hpp:2183
ranges::upper_bound
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
ranges::ref_fn
Definition: reference_wrapper.hpp:123
ranges::move_iterator
Definition: move_iterators.hpp:32
max_element.hpp
tuple_element
ranges::replace_if
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
accumulate.hpp
sort.hpp
ranges::remove_if
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
ranges::views::sliding_fn
Definition: sliding.hpp:374
functional.hpp
ranges::make_ostream_joiner_fn
Definition: stream_iterators.hpp:130
meta::reverse_find
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
ranges::views::filter_base_fn
Given a source range, unary predicate, and optional projection, present a view of the elements that s...
Definition: filter.hpp:81
take_while.hpp
partial_sum.hpp
ranges::tuple_apply_fn
Definition: tuple_algorithm.hpp:40
concepts::common_type
Users should specialize this to hook the common_with concept until std gets a SFINAE-friendly std::co...
Definition: type_traits.hpp:241
ranges::replace_copy_if
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
meta::apply
_t< extension::apply< Fn, L > > apply
Applies the invocable Fn using the types in the type list L as arguments.
Definition: meta.hpp:1030
meta::zip
transpose< ListOfLists > zip
Given a list of lists of types ListOfLists, construct a new list by grouping the elements from the li...
Definition: meta.hpp:2898
ranges::generate_view
Definition: generate.hpp:41
join.hpp
iota.hpp
meta::equal_to
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
ranges::inserter_fn
Definition: insert_iterators.hpp:167
trim.hpp
ranges::drop_exactly_view
Definition: drop_exactly.hpp:43
meta::pair
list< F, S > pair
A list with exactly two elements.
Definition: meta.hpp:2214
ranges::optional
Definition: optional.hpp:35
meta::size_t
std::integral_constant< std::size_t, N > size_t
An integral constant wrapper for std::size_t.
Definition: meta.hpp:163
ranges::compose
constexpr compose_fn compose
Definition: compose.hpp:77
sliding.hpp
ranges::view_facade
A utility for constructing a view from a (derived) type that implements begin and end cursors.
Definition: range_fwd.hpp:444
meta::is_callable
_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
ranges::sentinel_tag
Definition: concepts.hpp:665
ranges::view_interface::front
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
all.hpp
auto
ranges::reverse
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
copy_n.hpp
ranges::actions::action_closure_base
Definition: action.hpp:76
ranges::iter_transform_view
Definition: range_fwd.hpp:732
drop_exactly.hpp
ranges::views::take_last_base_fn
Definition: take_last.hpp:32
concat.hpp
ranges::exclusive_scan_view
Definition: exclusive_scan.hpp:47
meta::flip
An invocable that reverses the order of the first two arguments.
Definition: meta.hpp:1067
copy.hpp
meta.hpp
meta::not_fn
compose< quote< not_ >, Fn > not_fn
Logically negate the result of invocable Fn.
Definition: meta.hpp:2977
ranges::actions::stable_sort_fn
Definition: stable_sort.hpp:36
ranges::views::drop_exactly_base_fn
Definition: drop_exactly.hpp:129
meta::lazy::equal_to
defer< equal_to, T, U > equal_to
Definition: meta.hpp:341
meta::lazy::or_
defer< or_, Bs... > or_
Definition: meta.hpp:1440
ranges::copy_backward
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
ranges::concat_view
Definition: range_fwd.hpp:604
ranges::views::drop_base_fn
Definition: drop.hpp:135
ranges::greater
Definition: comparisons.hpp:82
search.hpp
ranges::actions::adjacent_remove_if_fn
Definition: adjacent_remove_if.hpp:37
partition_point.hpp
ranges::incrementable_traits
Definition: range_fwd.hpp:174
range_fwd.hpp
meta::min_
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
ranges::unreachable_sentinel_t
Definition: unreachable_sentinel.hpp:26
ranges::dangling
Definition: dangling.hpp:33
ranges::actions::sort_fn
Definition: sort.hpp:36
ranges::copy
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
ranges::advance_fn
Definition: operations.hpp:38
ranges::rotate
auto rotate(I first, I middle, S last) -> subrange< I > requires permutable< I > &&sentinel_for< S, I >
function template rotate
Definition: rotate.hpp:200
ranges::drop_view
Definition: drop.hpp:44
ranges::view_interface::operator<<
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
ranges::view_interface::at
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
reverse_iterator.hpp
meta::back
_t< detail::back_< L > > back
Return the last element in meta::list L.
Definition: meta.hpp:2071
meta::pop_front
_t< detail::pop_front_< L > > pop_front
Return a new meta::list by removing the first element from the front of L.
Definition: meta.hpp:2122
ranges::group_by_view
Definition: range_fwd.hpp:563
reverse.hpp
ranges::adjacent_find
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
meta::as_list
_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
ranges::max
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
ranges::find_if_not
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
ranges::default_sentinel_t
Definition: default_sentinel.hpp:25
invoke.hpp
ranges::logical_negate::operator()
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
ranges::make_reverse_iterator_fn
Definition: reverse_iterator.hpp:121
tuple_algorithm.hpp
ranges::greater_equal
Definition: comparisons.hpp:71
adjacent_difference.hpp
iota.hpp
ranges::views::remove_bind_fn
Definition: remove.hpp:75
ranges::make_common_pair
constexpr make_common_pair_fn make_common_pair
Definition: common_tuple.hpp:547
ranges::partial_sort_copy
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
ranges::coerce
Definition: arithmetic.hpp:73
ranges::count_if
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
meta::reverse_find_index
_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
meta::zip_with
transform< transpose< ListOfLists >, uncurry< Fn > > zip_with
Given a list of lists of types ListOfLists and an invocable Fn, construct a new list by calling Fn wi...
Definition: meta.hpp:2879
replace_if.hpp
meta::var
For use when defining local variables in meta::let expressions.
Definition: meta.hpp:3589
meta::lazy::push_back
defer< push_back, Ts... > push_back
Definition: meta.hpp:2148
remove_if.hpp
ranges::views::delimit_fn
Definition: delimit.hpp:103
ranges::mismatch
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
ranges::views::slice_base_fn
Definition: slice.hpp:190
meta::modulus
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
meta::greater_equal
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
meta::is_v
constexpr bool is_v
is_v Test whether a type T is an instantiation of class template C.
Definition: meta_fwd.hpp:261
ranges::take_while_view
Definition: range_fwd.hpp:715
ranges::is_heap_until
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
ranges::views::chunk_base_fn
Definition: chunk.hpp:412
take.hpp
ranges::size
constexpr _size_::fn size
Definition: primitives.hpp:152
ranges::index_fn::operator()
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
ranges::actions::take_while_fn
Definition: take_while.hpp:35
ranges::index_fn
Unchecked indexed range access.
Definition: operations.hpp:67
SharedFn
traits.hpp
ranges::semiregular_box
Definition: semiregular_box.hpp:67
indices.hpp
tail.hpp
set_algorithm.hpp
ranges::views::move_fn
Definition: move.hpp:105
compressed_pair.hpp
max.hpp
drop.hpp
ranges::search
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
ranges::iter_zip_with_view
Definition: range_fwd.hpp:793
meta::_v
constexpr T::type::value_type _v
Variable alias for T::type::value.
Definition: meta.hpp:148
ranges::enumerate
constexpr enumerate_fn enumerate
Definition: operations.hpp:576
stable_sort.hpp
meta::quote
Turn a template C into an invocable.
Definition: meta.hpp:912
ranges::static_const
Definition: static_const.hpp:21
ranges::back_insert_iterator
Definition: insert_iterators.hpp:31
ranges::lexicographical_compare
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
meta::lazy::join
defer< join, ListOfLists > join
Definition: meta.hpp:1761
ranges::views::intersperse_base_fn
Definition: intersperse.hpp:206
ranges::partial_sum_view
Definition: range_fwd.hpp:612
ranges::views::cpp20_counted_fn
Definition: counted.hpp:71
meta::id
A trait that always returns its argument T. It is also an invocable that always returns T.
Definition: meta.hpp:557
indirect.hpp
concepts.hpp
stride.hpp
concepts::detail::ignore
Definition: concepts.hpp:630
concepts::is_swappable
Definition: swap.hpp:131
ranges::split_when_view
Definition: split_when.hpp:48
ranges::move_tag
Definition: range_fwd.hpp:398
remove_if.hpp
is_partitioned.hpp
ranges::random_access_range_tag
Definition: concepts.hpp:303
ranges::tuple_foldl_fn
Definition: tuple_algorithm.hpp:109
meta::reverse_find_if
_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
ranges::views::take_exactly_fn
Definition: take_exactly.hpp:173
ranges::view_interface::operator[]
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
ranges::indirect_fn
Definition: indirect.hpp:72
ranges::views::stride_base_fn
Definition: stride.hpp:302
meta::second
front< pop_front< Pair > > second
Retrieve the first element of the pair Pair.
Definition: meta.hpp:2224
ranges::ends_with
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
ranges::yield_from_fn
Definition: for_each.hpp:83
ranges::pipeable_access
Definition: pipeable.hpp:66
meta::first
front< Pair > first
Retrieve the first element of the pair Pair.
Definition: meta.hpp:2219
concepts::detail::boolean
Definition: concepts.hpp:700
range_difference_t< Rng >
ranges::views::remove_base_fn
Definition: remove.hpp:39
for_each_n.hpp
ranges::unwrap_reference
constexpr unwrap_reference_fn unwrap_reference
Definition: reference_wrapper.hpp:182
ranges::views::single_fn
Definition: single.hpp:108
traits.hpp
generate_n.hpp
meta::bit_not
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
ranges::drop_while_view
Definition: drop_while.hpp:42
ranges::tuple_transform_fn
Definition: tuple_algorithm.hpp:60
concepts::detail::tag
Definition: concepts.hpp:651
ranges::views::adjacent_remove_if_fn
Definition: adjacent_remove_if.hpp:159
ranges::is_sorted_until
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
meta::vararg
detail::vararg_< T > vararg
For defining variadic placeholders.
Definition: meta.hpp:3575
ranges::overloaded
Definition: overload.hpp:31
ranges::views::cycle_fn::operator()
auto operator()(Rng &&rng) const -> cycled_view< all_t< Rng >> requires viewable_range< Rng > &&forward_range< Rng >
Definition: cycle.hpp:214
ranges::view_interface
Definition: range_fwd.hpp:474
replace_copy_if.hpp
access.hpp
ranges::compressed_pair
Definition: range_fwd.hpp:465
ranges::views::adjacent_filter_fn
Definition: adjacent_filter.hpp:158
ranges::take_view
Definition: range_fwd.hpp:684
meta::lazy::concat
defer< concat, Lists... > concat
Definition: meta.hpp:1743
ranges::inplace_merge
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
ranges::indirect_view
Definition: range_fwd.hpp:571
empty.hpp
pipeable.hpp
ranges::empty
constexpr _empty_::fn empty
Definition: primitives.hpp:313
First
inner_product.hpp
ranges::getlines_fn
Definition: getlines.hpp:98
find_end.hpp
meta_fwd.hpp
is_sorted.hpp
ranges::split_view
Definition: split.hpp:495
meta
Tiny metaprogramming library.
Definition: meta.hpp:115
ranges::slice_view
Definition: range_fwd.hpp:652
partial_sum.hpp
concepts.hpp
ranges::find_if
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
ranges::filter_view
Definition: filter.hpp:32
meta::integer_range
_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
move.hpp
ranges::make_compressed_tuple
constexpr make_compressed_tuple_fn make_compressed_tuple
Definition: compressed_pair.hpp:113
fill_n.hpp
take.hpp
ranges::readable_traits
Definition: range_fwd.hpp:171
cartesian_product.hpp
ranges::pop_heap
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
ranges::partition_point
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
take_exactly.hpp
ranges::move_backward
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
concepts::detail::Nil
Definition: concepts.hpp:848
concepts::detail::false_type
Definition: concepts.hpp:636
ranges::detail::bind_back_fn_
Definition: bind_back.hpp:36
ranges::views::values_fn
Definition: map.hpp:107
ranges::move
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::npos
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
ranges::actions::take_fn
Definition: take.hpp:35
ranges::actions::join_fn
Definition: join.hpp:44
move.hpp
ranges::insert_fn
Definition: insert.hpp:201
ranges::views::replace_if_base_fn
Definition: replace_if.hpp:117
ranges::views::remove_if_bind_fn
Definition: remove_if.hpp:170
ranges::view_interface::front
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
ranges::view_facade< iter_transform2_view< Rng1, Rng2, Fun >, detail::transform2_cardinality(range_cardinality< Rng1 >::value, range_cardinality< Rng2 >::value)>::end
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
ranges::views::unique_fn
Definition: unique.hpp:50
adjacent_remove_if.hpp
ranges::back
constexpr back_fn back
Definition: operations.hpp:104
ranges::actions::slice_fn
Definition: slice.hpp:38
ranges::category
category
An enum that denotes the supported subset of range concepts supported by a range.
Definition: any_view.hpp:42
concepts::is_nothrow_swappable_with
Definition: swap.hpp:140
ranges::crbegin
constexpr _crbegin_::fn crbegin
Definition: access.hpp:641
interface.hpp
ranges::overload
constexpr overload_fn overload
Definition: overload.hpp:135
ranges::views::replace_if_fn
Definition: replace_if.hpp:136
ranges::get_cursor
constexpr get_cursor_fn get_cursor
Definition: basic_iterator.hpp:855
sample.hpp
ranges::tuple_apply
constexpr tuple_apply_fn tuple_apply
Definition: tuple_algorithm.hpp:58
ranges::view_adaptor
Definition: range_fwd.hpp:448
offset_t< Const >
ranges::make_compressed_pair
constexpr make_compressed_pair_fn make_compressed_pair
Definition: compressed_pair.hpp:181
ranges::views::set_union_fn
Definition: set_algorithm.hpp:611
for_each.hpp
ranges::views::split_when_fn
Definition: split_when.hpp:204
all_t< Rng >
ranges::adaptor_cursor
Definition: adaptor.hpp:104
meta::lazy::if_
defer< if_, Args... > if_
Definition: meta.hpp:1230
ranges::end
constexpr _end_::fn end
Definition: access.hpp:323
ranges::end_tag
Definition: range_fwd.hpp:394
ranges::not_equal_to
Definition: comparisons.hpp:38
getlines.hpp
ranges::begin
constexpr _begin_::fn begin
Definition: access.hpp:179
ranges::generate
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
ranges::sized_iterator_range
Definition: range_fwd.hpp:483
set_algorithm.hpp
ranges::begin_tag
Definition: range_fwd.hpp:392
ranges::protector
Definition: bind.hpp:73
shuffle.hpp
ranges::actions::split_fn
Definition: split.hpp:40
ranges::box
Definition: box.hpp:162
ranges::move_sentinel
Definition: move_iterators.hpp:204
Derived
ranges::experimental::shared_view
Definition: shared.hpp:36
ranges::make_view_closure
constexpr make_view_closure_fn make_view_closure
Definition: view.hpp:103
ranges::repeat_n_view
Definition: repeat_n.hpp:42
ranges::views::replace_base_fn
Definition: replace.hpp:89
ranges::plus
Definition: arithmetic.hpp:24
ranges::make_action_closure
constexpr make_action_closure_fn make_action_closure
Definition: action.hpp:48
fill.hpp
tuple
Definition: common_type.hpp:37
ranges::views::for_each_fn
Definition: for_each.hpp:53
partition.hpp
meta::sort
_t< detail::sort_< L, Fn > > sort
Return a new meta::list that is sorted according to invocable predicate Fn.
Definition: meta.hpp:3244
unique
constexpr action_closure< unique_fn > unique
Definition: unique.hpp:62
meta::unique
fold< L, list<>, quote_trait< detail::insert_back_ > > unique
Return a new meta::list where all duplicate elements have been removed.
Definition: meta.hpp:3125
ranges::cdata
constexpr _cdata_::fn cdata
Definition: primitives.hpp:241
concepts::is_nothrow_swappable
Definition: swap.hpp:134
meta::drop
drop_c< L, N::type::value > drop
Return a new meta::list by removing the first N elements from L.
Definition: meta.hpp:2005
meta::find_if
_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
generate_n.hpp
ranges::bind_back
constexpr bind_back_fn bind_back
Definition: bind_back.hpp:184
meta::lazy::size
defer< size, L > size
Definition: meta.hpp:1671
meta::char_
std::integral_constant< char, Ch > char_
An integral constant wrapper for char.
Definition: meta.hpp:178
ranges::basic_iterator
Definition: basic_iterator.hpp:492
meta::integer_sequence::size
static constexpr std::size_t size() noexcept
Definition: meta.hpp:437
ranges::rend
constexpr _rend_::fn rend
Definition: access.hpp:620
ranges::sample_view
Definition: sample.hpp:83
arithmetic.hpp
meta::bind_front
An invocable that partially applies the invocable Fn by binding the arguments Ts to the front of Fn.
Definition: meta.hpp:968
ranges::at_fn
Checked indexed range access.
Definition: operations.hpp:35
ranges::views::closed_indices_fn
Inclusive range of indices: [from, to].
Definition: indices.hpp:53
ranges::on
constexpr on_fn on
Definition: on.hpp:60
ranges::accumulate_fn
Definition: accumulate.hpp:34
none_of.hpp
ranges::rbegin
constexpr _rbegin_::fn rbegin
Definition: access.hpp:494
ranges::views::enumerate_fn
Lazily pairs each element in a source range with its corresponding index.
Definition: enumerate.hpp:96
concepts::detail::boolean_
Definition: concepts.hpp:813
ranges::views::set_difference_base_fn
Definition: set_algorithm.hpp:221
ranges::views::set_difference_fn
Definition: set_algorithm.hpp:241
single.hpp
meta::lazy::max
defer< max, Ts... > max
Definition: meta.hpp:2188
ranges::back_fn::operator()
constexpr auto operator()(Rng &&rng) const -> range_reference_t< Rng > requires common_range< Rng > &&bidirectional_range< Rng > &&forwarding_range_< Rng >
Definition: operations.hpp:94
ranges::common_tuple
Definition: common_tuple.hpp:95
replace.hpp
multiset
Definition: concepts.hpp:46
ranges::views::delimit_base_fn
Definition: delimit.hpp:81
ranges::front_insert_iterator
Definition: insert_iterators.hpp:80
ranges::make_action_closure_fn
Definition: action.hpp:38
ranges::raw_buffer
Definition: memory.hpp:217
ranges::view_facade::begin
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
meta::id_t
_t< id< T > > id_t
An alias for type T. Useful in non-deduced contexts.
Definition: meta.hpp:577
ranges::views::const_fn
Definition: const.hpp:112
ranges::chunk_view_
Definition: chunk.hpp:82
adaptor.hpp
meta::in
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
meta::compose_
Compose the Invocables Fns in the parameter pack Ts.
Definition: meta.hpp:880
ranges::views::ref_fn
Definition: ref.hpp:91
meta::extension::apply
A trait that unpacks the types in the type list L into the invocable Fn.
Definition: meta.hpp:1004
ranges::reverse_view
Definition: range_fwd.hpp:644
meta::at_c
_t< detail::at_< L, N > > at_c
Return the N th element in the meta::list L.
Definition: meta.hpp:1930
ranges::views::indices_fn
Half-open range of indices: [from, to).
Definition: indices.hpp:34
exclusive_scan.hpp
ranges::distance
constexpr distance_fn distance
Definition: operations.hpp:607
in_place.hpp
ranges::view_interface::size
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
ranges::view_facade::begin
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
meta::lazy::invoke
defer< invoke, Fn, Args... > invoke
Definition: meta.hpp:549
common_tuple.hpp
core.hpp
reverse.hpp
ranges::views::take_while_bind_fn
Definition: take_while.hpp:156
ranges::views::filter_fn
Definition: filter.hpp:97
variant.hpp
overload.hpp
is_sorted_until.hpp
nth_element.hpp
ranges::inner_product_fn
Definition: inner_product.hpp:72
meta::less
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
ranges::join_view::cursor
Definition: join.hpp:178
ranges::distance_compare_fn
Definition: operations.hpp:610
ranges::actions::split_when_fn
Definition: split_when.hpp:41
ranges::actions::drop_fn
Definition: drop.hpp:35
meta::let
_t< _t< detail::let_< As... > >> let
A lexically scoped expression with local variables.
Definition: meta.hpp:3627
meta::any_of
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
ranges::starts_with
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
ranges::invoke_result
Definition: invoke.hpp:171
meta::alignof_
meta::size_t< alignof(T)> alignof_
An alias that computes the alignment required for any instance of the type T.
Definition: meta.hpp:831
stable_partition.hpp
intersperse.hpp
ranges::prev_fn
Definition: operations.hpp:337
ranges::single_view
Definition: range_fwd.hpp:668
swap_ranges.hpp
find_first_of.hpp
ranges::adjacent_filter_view
Definition: range_fwd.hpp:491
meta::and_c
Definition: meta.hpp:1347
ranges::views::cache1_fn
Definition: cache1.hpp:166
meta::not_
not_c< B::type::value > not_
Logically negate the integral constant-wrapped Boolean parameter.
Definition: meta.hpp:1325
meta::lazy::less
defer< less, T, U > less
Definition: meta.hpp:356
ranges::find
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
ranges::is_indirectly_movable
Definition: access.hpp:156
stream_iterators.hpp
ranges::views::split_fn
Definition: split.hpp:633
reverse_copy.hpp
meta::filter
join< transform< L, detail::filter_< Pred > >> filter
Returns a new meta::list where only those elements of L that satisfy the Callable Pred such that invo...
Definition: meta.hpp:2786
ranges::views::view_closure
Definition: range_fwd.hpp:153
semiregular_box.hpp
ranges::make_subrange_fn
Definition: subrange.hpp:424
ranges::views::set_intersection_base_fn
Definition: set_algorithm.hpp:390
ranges::make_compressed_pair_fn
Definition: compressed_pair.hpp:170
meta::make_integer_sequence
_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
ranges::invoke_fn
Definition: invoke.hpp:87
ranges::view_interface::size
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
concepts::detail::and_
Definition: concepts.hpp:708
ranges::to
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
meta::reverse_fold
_t< detail::reverse_fold_< L, State, Fn > > reverse_fold
Return a new meta::list constructed by doing a right fold of the list L using binary invocable Fn and...
Definition: meta.hpp:1629
search_n.hpp
sample.hpp
common_type.hpp
meta::repeat_n
repeat_n_c< N::type::value, T > repeat_n
Generate list<T,T,T...T> of size N arguments.
Definition: meta.hpp:1867
ranges::span
Definition: span.hpp:156
ranges::views::trim_bind_fn
Definition: trim.hpp:123
ranges::views::closed_iota_fn
Definition: iota.hpp:463
replace_if.hpp
ranges::iter_distance
constexpr iter_distance_fn iter_distance
Definition: operations.hpp:441
RANGES_FOR
#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
insert.hpp
ranges::views::sample_base_fn
Returns a random sample of a range of length size(range).
Definition: sample.hpp:209
ranges::detail::bind_back_fn_::operator()
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
ranges::aux::move
constexpr move_fn move
Definition: move.hpp:52
ranges::empty_view
Definition: range_fwd.hpp:555
ranges::sliding_view
Definition: sliding.hpp:62
ranges::actions::stable_sort_fn::stable_sort
constexpr action_closure< stable_sort_fn > stable_sort
Definition: stable_sort.hpp:58
ranges::views::iter_zip_with_fn
Definition: zip_with.hpp:369
meta::minus
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
meta::repeat_n_c
_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
ranges::trim_view
Definition: range_fwd.hpp:756
meta::none_of
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
ranges::common_range_tag
Definition: concepts.hpp:331
action.hpp
ranges::make_view_closure_fn
Definition: view.hpp:92
indirect.hpp
meta::lazy::transform
defer< transform, Args... > transform
Definition: meta.hpp:1831
meta::make_index_sequence
_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
ranges::views::tokenize_base_fn
Definition: tokenize.hpp:102
ranges::front
constexpr front_fn front
Definition: operations.hpp:120
ranges::rotate
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
addressof.hpp
ranges::cbegin
constexpr _cbegin_::fn cbegin
Definition: access.hpp:344
ranges::is_indirectly_swappable
Definition: access.hpp:281
ranges::push_heap
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
meta::lazy::compose
defer< compose, Fns... > compose
Definition: meta.hpp:906
ranges::mismatch
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
any.hpp
mismatch.hpp
ranges::views::transform_base_fn
Definition: transform.hpp:483
take_last.hpp
meta::drop_c
_t< detail::drop_< L, N > > drop_c
Return a new meta::list by removing the first N elements from L.
Definition: meta.hpp:1998
ranges::overload_fn
Definition: overload.hpp:119
ranges::adjacent_remove_if_view
Definition: range_fwd.hpp:499
Second
ranges::range_cardinality
Definition: traits.hpp:123
ranges::views::cpp20_join_fn
Definition: join.hpp:513
meta::integer_sequence
A container for a sequence of compile-time integer constants.
Definition: meta.hpp:433
span.hpp
ranges::min
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
merge.hpp
access.hpp
meta::nil_
An empty type.
Definition: meta.hpp:134
ranges::views::concat_fn
Definition: concat.hpp:387
stable_sort.hpp
meta::requires
requires(sizeof...(Ts) > 0) using lambda
For creating anonymous Invocables.
ranges::yield_fn
Definition: for_each.hpp:69
ranges::prev_permutation
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
replace.hpp
ViewFn
ranges::at_fn::operator()
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
ranges::contains
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
ranges::multiplies
Definition: arithmetic.hpp:44
meta::all_of
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
cache1.hpp
ranges::views::take_while_base_fn
Definition: take_while.hpp:135
ranges::advance
constexpr advance_fn advance
Definition: operations.hpp:209
numeric.hpp
ranges::sort
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
unreachable_sentinel.hpp
utility.hpp
unique.hpp
ranges::common_pair
Definition: common_tuple.hpp:317
ranges::move_view
Definition: range_fwd.hpp:620
ranges::search_n
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
meta::bit_or
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
permutation.hpp
ranges::zip_view
Definition: range_fwd.hpp:799
split_when.hpp
meta::transform
_t< detail::transform_< Args... > > transform
Return a new meta::list constructed by transforming all the elements in L with the unary invocable Fn...
Definition: meta.hpp:1820
ranges::unbounded_view
Definition: range_fwd.hpp:764
meta::replace_if
_t< detail::replace_if_< L, C, U > > replace_if
Return a new meta::list where all elements A of the list L for which invoke<C,A>::value is true have ...
Definition: meta.hpp:2637
ranges::distance_compare
constexpr distance_compare_fn distance_compare
Definition: operations.hpp:645
ranges::protect
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
meta::concat_
_t< detail::concat_< Ls... > > concat_
Concatenates several lists into a single list.
Definition: meta.hpp:1733
meta::max_
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
ranges::remove_if_view
Definition: remove_if.hpp:44
meta::join
apply< quote< concat >, ListOfLists > join
Joins a list of lists into a single list.
Definition: meta.hpp:1754
ranges::any
Definition: any.hpp:64
ranges::ref
constexpr ref_fn ref
Definition: reference_wrapper.hpp:147
ranges::intersperse_view
Definition: intersperse.hpp:41
drop_while.hpp
ranges::views::generate_n_fn
Definition: generate_n.hpp:101
ranges::drop_last_view
Definition: drop_last.hpp:123
ranges::any_of
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
meta::lazy::bind_back
defer< bind_back, Fn, Ts... > bind_back
Definition: meta.hpp:994
get.hpp
ranges::transformed
Definition: on.hpp:28
not_fn.hpp
meta::is
_t< detail::is_< T, C > > is
is
Definition: meta.hpp:874
concepts::is_swappable_with
Definition: swap.hpp:137
ranges::join_view
Definition: range_fwd.hpp:593
sort.hpp
push_back.hpp
ranges::iter_enumerate
constexpr iter_enumerate_fn iter_enumerate
Definition: operations.hpp:409
ranges::includes
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
unstable_remove_if.hpp
ranges::cend
constexpr _cend_::fn cend
Definition: access.hpp:365
ranges::actions::action_closure
Definition: action.hpp:135
ranges::bad_optional_access
Definition: optional.hpp:37
ranges::identity
Definition: identity.hpp:24
meta::lazy::cartesian_product
defer< cartesian_product, ListOfLists > cartesian_product
Definition: meta.hpp:3694
ranges::view_interface::empty
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
ranges::scope_exit
Definition: scope_exit.hpp:27
ranges::prev
constexpr prev_fn prev
Definition: operations.hpp:362
ranges::move_backward
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
int
meta::int_
std::integral_constant< int, I > int_
An integral constant wrapper for int.
Definition: meta.hpp:173
ranges::views::adjacent_filter_base_fn
Definition: adjacent_filter.hpp:147
copy_if.hpp
compose.hpp
ranges::view_
concept view_
View concepts below.
Definition: concepts.hpp:281
ranges::composed
Definition: compose.hpp:32
ranges::views::cycle_fn
Returns an infinite range that endlessly repeats the source range.
Definition: cycle.hpp:210
replace_copy.hpp
tokenize.hpp
unstable_remove_if.hpp
optional.hpp