1#ifndef TATOOINE_INVOKE_OMITTED_H
2#define TATOOINE_INVOKE_OMITTED_H
7template <
typename F,
typename... Params>
9 return std::invoke(f, std::forward<Params>(params)...);
12template <
size_t i,
size_t... is,
typename F,
typename Param,
16 if constexpr (i == 0) {
18 [&](
auto&&... lparams) ->
decltype(
auto) {
19 return std::invoke(f, std::forward<
decltype(lparams)>(lparams)...);
21 std::forward<Params>(params)...);
24 [&](
auto&&... lparams) ->
decltype(
auto) {
25 return std::invoke(f, std::forward<Param>(param),
26 std::forward<
decltype(lparams)>(lparams)...);
28 std::forward<Params>(params)...);
Definition: algorithm.h:6
constexpr decltype(auto) invoke_omitted(F &&f, Params &&... params)
Definition: invoke_omitted.h:8