proxygen
folly::detail::apply_tuple::adl::ApplyInvoke Struct Reference

#include <ApplyTuple.h>

Inheritance diagram for folly::detail::apply_tuple::adl::ApplyInvoke:
folly::ApplyInvoke

Public Types

template<typename T >
using seq = index_sequence_for_tuple< std::remove_reference_t< T >>
 

Static Public Member Functions

template<typename F , typename T , std::size_t... I>
static constexpr auto invoke_ (F &&f, T &&t, index_sequence< I... >) noexcept(is_nothrow_invocable< F &&, decltype(get< I >(std::declval< T >()))... >::value) -> invoke_result_t< F &&, decltype(get< I >(std::declval< T >()))... >
 

Detailed Description

Definition at line 43 of file ApplyTuple.h.

Member Typedef Documentation

template<typename T >
using folly::detail::apply_tuple::adl::ApplyInvoke::seq = index_sequence_for_tuple<std::remove_reference_t<T>>

Definition at line 45 of file ApplyTuple.h.

Member Function Documentation

template<typename F , typename T , std::size_t... I>
static constexpr auto folly::detail::apply_tuple::adl::ApplyInvoke::invoke_ ( F &&  f,
T &&  t,
index_sequence< I... >   
) -> invoke_result_t<F&&, decltype(get<I>(std::declval<T>()))...>
inlinestaticnoexcept

Definition at line 48 of file ApplyTuple.h.

References f, folly::invoke(), and folly::pushmi::detail::t.

Referenced by folly::ApplyInvoke::operator()().

50  {
51  return invoke(static_cast<F&&>(f), get<I>(static_cast<T&&>(t))...);
52  }
auto f
constexpr auto invoke(F &&f, Args &&...args) noexcept(noexcept(static_cast< F && >(f)(static_cast< Args && >(args)...))) -> decltype(static_cast< F && >(f)(static_cast< Args && >(args)...))
Definition: Invoke.h:49

The documentation for this struct was generated from the following file: