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 &&>>
U | 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 {}