40 template <::std::size_t...
I>
43 noexcept(compat::invoke(::std::get<I>(::std::move(tuple_))...)))
44 ->
decltype(compat::invoke(::std::get<I>(::std::move(tuple_))...)) {
45 return compat::invoke(::std::get<I>(::std::move(tuple_))...);
52 template <
class F,
class...
Args,
53 class = typename ::std::enable_if<!::std::is_same<
54 typename ::std::decay<F>::type,
invoker>::value>::type>
56 : tuple_{::std::forward<F>(f), ::std::forward<Args>(
args)...} {}
59 operator()()
noexcept(
60 noexcept(::std::declval<invoker&>().invoke_(
sequence_{})))
61 ->
decltype(::std::declval<invoker&>().invoke_(
sequence_{})) {