Tatooine
Classes | Namespaces | Typedefs | Functions | Variables
variadic_helpers.h File Reference

Go to the source code of this file.

Classes

struct  tatooine::variadic::front_number_impl< I, Is >
 
struct  tatooine::variadic::back_number_impl< I >
 
struct  tatooine::variadic::back_number_impl< I, Is... >
 
struct  tatooine::variadic::front_type_impl< T, Ts >
 
struct  tatooine::variadic::back_type_impl< T >
 
struct  tatooine::variadic::back_type_impl< T, Ts... >
 
struct  tatooine::variadic::ith_number_impl< I, CurNum, RestNums >
 
struct  tatooine::variadic::ith_number_impl< 0, CurNum, RestNums... >
 
struct  tatooine::variadic::contains_impl< X, I, Rest... >
 
struct  tatooine::variadic::contains_impl< X, X, Rest... >
 
struct  tatooine::variadic::contains_impl< X >
 
struct  tatooine::variadic::extract_helper_tuple_impl< I, Begin, End, T, Ts... >
 Iterate all the way until I == Begin. More...
 
struct  tatooine::variadic::extract_helper_tuple_impl< I, Begin, End, T0, T1, Ts... >
 Start concatenating types into tuple. More...
 

Namespaces

namespace  tatooine
 
namespace  tatooine::variadic
 

Typedefs

template<typename... Ts>
using tatooine::variadic::front_type = typename front_type_impl< Ts... >::type
 
template<typename... Ts>
using tatooine::variadic::back_type = typename back_type_impl< Ts... >::type
 
template<std::size_t Begin, std::size_t End, typename... Ts>
using tatooine::variadic::extract_helper_tuple = typename extract_helper_tuple_impl< 0, Begin, End, Ts... >::type
 

Functions

template<std::size_t I, std::size_t Begin, std::size_t End>
constexpr auto tatooine::variadic::extract_to_array (auto &extracted_data) -> auto &
 Extracts variadic data into an array in the Range of Begin and End. More...
 
template<std::size_t I, std::size_t Begin, std::size_t End, typename T , typename... Ts>
requires (Begin < End) && (I <= End)
constexpr auto tatooine::variadic::extract_to_array (auto &extracted_data, T &&t, Ts &&... ts) -> auto &
 Extracts variadic data into an array in the Range of Begin and End. More...
 
template<std::size_t I, std::size_t Begin, std::size_t End>
constexpr auto tatooine::variadic::extract_to_tuple (auto &extracted_data) -> auto &
 Extracts variadic data into an array in the Range of Begin and End. More...
 
template<std::size_t I, std::size_t Begin, std::size_t End, typename T , typename... Ts>
requires (Begin < End) && (I == End)
constexpr auto tatooine::variadic::extract_to_tuple (auto &extracted_data) -> auto &
 Extracts variadic data into an array in the Range of Begin and End. More...
 
template<std::size_t I, std::size_t Begin, std::size_t End, typename T , typename... Ts>
requires (Begin < End) && (I <= End)
constexpr auto tatooine::variadic::extract_to_tuple (auto &extracted_data, T &&t, Ts &&... ts) -> auto &
 Extracts variadic data into an array in the Range of Begin and End. More...
 
template<std::size_t Begin, std::size_t End, typename T , typename... Ts>
requires (Begin < End)
constexpr auto tatooine::variadic::extract (T &&t, Ts &&... ts)
 Extracts variadic data into an array in the Range of Begin and End. More...
 

Variables

template<std::size_t... Is>
static auto constexpr tatooine::variadic::front_number = front_number_impl<Is...>::value
 
template<std::size_t... Is>
static auto constexpr tatooine::variadic::back_number = back_number_impl<Is...>::value
 
template<std::size_t I, std::size_t... Nums>
static auto constexpr tatooine::variadic::ith_number
 
template<std::size_t X, std::size_t... Is>
static constexpr auto tatooine::variadic::contains = contains_impl<X, Is...>::value