Tatooine
Classes | Namespaces | Functions
invoke_unpacked.h File Reference

Go to the source code of this file.

Classes

struct  tatooine::unpack< std::array< T, N > >
 
struct  tatooine::unpack< const std::array< T, N > >
 
struct  tatooine::unpack< std::tuple< Ts... > >
 
struct  tatooine::unpack< const std::tuple< Ts... > >
 
struct  tatooine::unpack< std::pair< A, B > >
 
struct  tatooine::unpack< const std::pair< A, B > >
 

Namespaces

namespace  tatooine
 

Functions

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 > >