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

Classes

struct  ranges::v3::bind_element< T >
 
struct  ranges::v3::bind_element< reference_wrapper< T > >
 
struct  ranges::v3::bind_element< std::reference_wrapper< T > >
 
struct  ranges::v3::bitwise_or
 
struct  ranges::v3::coerce< T >
 
struct  ranges::v3::coerce< T & >
 
struct  ranges::v3::coerce< T && >
 
struct  ranges::v3::coerce< T const >
 
struct  ranges::v3::compose_fn
 
struct  ranges::v3::composed< Second, First >
 
struct  ranges::v3::concepts::Invocable
 
struct  ranges::v3::concepts::Predicate
 
struct  ranges::v3::concepts::RegularInvocable
 
struct  ranges::v3::concepts::Relation
 
struct  ranges::v3::convert_to< T >
 
struct  ranges::v3::dereference_fn
 
struct  ranges::v3::equal_to
 
struct  ranges::v3::ident
 
struct  ranges::v3::indirect_fn
 
struct  ranges::v3::indirected< Fn >
 
struct  ranges::v3::is_pipeable< T >
 
struct  ranges::v3::is_pipeable< T & >
 
struct  ranges::v3::less
 
struct  ranges::v3::logical_negate_< FD >
 
struct  ranges::v3::make_pipeable_fn
 
struct  ranges::v3::minus
 
struct  ranges::v3::multiplies
 
struct  ranges::v3::not_equal_to
 
struct  ranges::v3::not_fn_fn
 
struct  ranges::v3::on_fn
 
struct  ranges::v3::ordered_less
 
struct  ranges::v3::overload_fn
 
struct  ranges::v3::overloaded< First, Rest... >
 
struct  ranges::v3::overloaded<>
 
struct  ranges::v3::pipeable< Derived >
 
struct  ranges::v3::pipeable_access
 
struct  ranges::v3::pipeable_access::impl< Pipeable >
 
struct  ranges::v3::pipeable_access::impl< Pipeable & >
 
struct  ranges::v3::pipeable_base
 
struct  ranges::v3::plus
 
struct  ranges::v3::protect_fn
 
struct  ranges::v3::ref_fn
 
struct  ranges::v3::transformed< Fn1, Fn2 >
 
struct  ranges::v3::unwrap_reference_fn
 
struct  ranges::v3::with_braced_init_args< ImplFn >
 

Typedefs

template<typename Fun , typename... Args>
using ranges::v3::Invocable = concepts::models< concepts::Invocable, Fun, Args... >
 
template<typename Pred >
using ranges::v3::logical_negate = logical_negate_< detail::decay_t< Pred > >
 
template<typename Fun , typename... Args>
using ranges::v3::Predicate = concepts::models< concepts::Predicate, Fun, Args... >
 
template<typename T >
using ranges::v3::ref_t = decltype(ref(std::declval< T >()))
 
template<typename Fun , typename... Args>
using ranges::v3::RegularInvocable = concepts::models< concepts::RegularInvocable, Fun, Args... >
 
template<typename Fun , typename T , typename U = T>
using ranges::v3::Relation = concepts::models< concepts::Relation, Fun, T, U >
 
template<typename T >
using ranges::v3::unwrap_reference_t = decltype(unwrap_reference(std::declval< T >()))
 

Functions

template<typename T , typename U = meta::if_< std::is_lvalue_reference<T>, std::reference_wrapper<meta::_t<std::remove_reference<T>>>, T &&>>
ranges::v3::bind_forward (meta::_t< std::remove_reference< T >> &t) noexcept
 
template<typename T >
T && ranges::v3::bind_forward (meta::_t< std::remove_reference< T >> &&t) noexcept
 
template<typename Arg , typename Pipe , requires = (!is_pipeable<Arg>() && is_pipeable<Pipe>())>
auto ranges::v3::operator| (Arg &&arg, Pipe pipe) -> decltype(pipeable_access::impl< Pipe >::pipe(static_cast< Arg &&>(arg), pipe))
 
template<typename Pipe0 , typename Pipe1 , requires = (is_pipeable<Pipe0>() && is_pipeable<Pipe1>())>
auto ranges::v3::operator| (Pipe0 pipe0, Pipe1 pipe1) -> decltype(make_pipeable(detail::composed_pipe< Pipe0, Pipe1 >
 

Variables

constexpr compose_fn ranges::v3::compose {}
 
constexpr dereference_fn ranges::v3::dereference {}
 
constexpr indirect_fn ranges::v3::indirect {}
 
constexpr make_pipeable_fn ranges::v3::make_pipeable {}
 
constexpr not_fn_fn ranges::v3::not_fn {}
 
constexpr on_fn ranges::v3::on {}
 
constexpr overload_fn ranges::v3::overload {}
 
constexpr protect_fn ranges::v3::protect {}
 Protect a callable so that it can be safely used in a bind expression without accidentally becoming a "nested" bind. More...
 
constexpr ref_fn ranges::v3::ref {}
 
constexpr unwrap_reference_fn ranges::v3::unwrap_reference {}