|  | 
|  | 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...)))) | 
|  |