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

Public Member Functions

 indirected (Fn fn)
 
auto *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() (copy_tag, Its...) const -> invoke_result_t< Fn &, iter_reference_t< Its >... >
 
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() (Its... its) return invoke((Fn const &) fn_
 
template<typename... Its>
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...))))
 
template<typename... Its>
auto operator() (move_tag, Its... its) return static_cast< aux