14#ifndef RANGES_V3_FUNCTIONAL_INDIRECT_HPP
15#define RANGES_V3_FUNCTIONAL_INDIRECT_HPP
24#include <range/v3/utility/static_const.hpp>
26#include <range/v3/detail/prologue.hpp>
36 RANGES_NO_UNIQUE_ADDRESS
45 template<
typename... Its>
46 [[noreturn]] invoke_result_t<Fn &, iter_reference_t<Its>...>
54 template<
typename... Its>
55 auto CPP_auto_fun(
operator())(Its... its)
57 return invoke(fn_, *its...)
59 template<typename... Its>
60 auto CPP_auto_fun(
operator())(Its... its)(
const)
62 return invoke((Fn
const &)fn_, *its...)
66 template<typename... Its>
67 auto CPP_auto_fun(
operator())(
move_tag, Its... its)
71 aux::move(
invoke(fn_, *its...)))
73 template<
typename... Its>
74 auto CPP_auto_fun(
operator())(
move_tag, Its... its)(
const)
78 aux::move(
invoke((Fn
const &)fn_, *its...)))
98#include <range/v3/detail/epilogue.hpp>
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:399
meta::if_c< std::is_reference< R >::value, meta::_t< std::remove_reference< R > > &&, detail::decay_t< R > > move_t
Definition: move.hpp:59
typename Fn::template invoke< Args... > invoke
Evaluate the invocable Fn with the arguments Args.
Definition: meta.hpp:541
Definition: range_fwd.hpp:492
Definition: indirect.hpp:84
Definition: indirect.hpp:34
Definition: range_fwd.hpp:494