| 60 | |
| 61 | template<typename... TArgs, std::invocable<TArgs&&..., Args&...> Callable> |
| 62 | auto apply(Callable&& callable, TArgs&&... args) |
| 63 | { |
| 64 | return std::forward<Callable>(callable)(std::forward<TArgs>(args)..., static_cast<tuple_leaf<Indices, Args>*>(this)->get()...); |
| 65 | } |
| 66 | |
| 67 | template<typename... TArgs, std::invocable<TArgs&&..., Args...> Callable> |
| 68 | auto apply(Callable&& callable, TArgs&&... args) const |