Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::indirected< Fn > Struct Template Reference

Public Member Functions

 indirected (Fn fn)
 
template<typename... Its>
invoke_result_t< Fn &, iter_reference_t< Its >... > operator() (copy_tag, Its...) const
 
template<typename... Its>
auto operator() (Its... its) noexcept(noexcept(decltype(CPP_AUTO_FUN_RETURNS_const,)(CPP_AUTO_FUN_RETURNS_const,))) -> decltype(CPP_AUTO_FUN_RETURNS_const,)
 
template<typename... Its>
auto operator() (Its... its) noexcept(noexcept(decltype(invoke(fn_, *its...))(invoke(fn_, *its...)))) -> decltype(invoke(fn_, *its...))
 
template<typename... Its>
auto operator() (move_tag, Its... its) noexcept(noexcept(decltype(CPP_AUTO_FUN_RETURNS_const,)(CPP_AUTO_FUN_RETURNS_const,))) -> decltype(CPP_AUTO_FUN_RETURNS_const,)
 
template<typename... Its>
const auto operator() (move_tag, Its... its) noexcept(noexcept(decltype(static_cast< aux::move_t< invoke_result_t< Fn &, iter_reference_t< Its >... > > >(aux::move(invoke(fn_, *its...))))(static_cast< aux::move_t< invoke_result_t< Fn &, iter_reference_t< Its >... > > >(aux::move(invoke(fn_, *its...)))))) -> decltype(static_cast< aux::move_t< invoke_result_t< Fn &, iter_reference_t< Its >... > > >(aux::move(invoke(fn_, *its...))))