#ifndef EINA_CXX_EINA_TUPLE_UNWRAP_HH #define EINA_CXX_EINA_TUPLE_UNWRAP_HH #include namespace efl { namespace eina { template auto call_tuple_unwrap(Callable const& callable, T const& tuple , eina::index_sequence) -> decltype(callable(std::get(tuple)...)) { return callable(std::get(tuple)...); } template auto call_tuple_unwrap_prefix(Callable const& callable, T const& tuple , eina::index_sequence , Args&&... args) -> decltype(callable(std::forward(args)..., std::get(tuple)...)) { return callable(std::forward(args)..., std::get(tuple)...); } template auto call_tuple_unwrap_suffix(Callable const& callable, T const& tuple , eina::index_sequence , Args&&... args) -> decltype(callable(std::get(tuple)..., std::forward(args)...)) { return callable(std::get(tuple)..., std::forward(args)...); } } } #endif