|
template<typename F > |
constexpr decltype(auto) | tatooine::invoke_unpacked (F &&f) |
| All arguments are bound -> just call f. More...
|
|
template<typename F , typename T , typename... Ts> |
constexpr decltype(auto) | tatooine::invoke_unpacked (F &&f, T &&t, Ts &&... ts) |
| Recursive currying. Curry first non-unpacked type to f. More...
|
|
template<std::size_t... Is, typename F , typename T , typename... Ts> |
constexpr decltype(auto) | tatooine::invoke_unpacked (std::index_sequence< Is... >, F &&f, unpack< T > t, Ts &&... ts) |
| Curries unpacked parameters by calling invoke_unpacked(F&&, T&&, Ts&&...). More...
|
|
template<typename F , typename T , typename... Ts> |
constexpr decltype(auto) | tatooine::invoke_unpacked (F &&f, unpack< T > t, Ts &&... ts) |
|
template<typename T , size_t N> |
| tatooine::unpack (std::array< T, N > &c) -> unpack< std::array< T, N > > |
|
template<typename T , size_t N> |
| tatooine::unpack (const std::array< T, N > &c) -> unpack< const std::array< T, N > > |
|
template<typename... Ts> |
| tatooine::unpack (std::tuple< Ts... > &&c) -> unpack< std::tuple< Ts... > > |
|
template<typename... Ts> |
| tatooine::unpack (const std::tuple< Ts... > &c) -> unpack< const std::tuple< Ts... > > |
|
template<typename A , typename B > |
| tatooine::unpack (std::pair< A, B > &c) -> unpack< std::pair< A, B > > |
|
template<typename A , typename B > |
| tatooine::unpack (const std::pair< A, B > &c) -> unpack< const std::pair< A, B > > |
|