Tatooine
Classes | Typedefs | Functions | Variables
tatooine::variadic Namespace Reference

Classes

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

Typedefs

template<typename... Ts>
using front_type = typename front_type_impl< Ts... >::type
 
template<typename... Ts>
using back_type = typename back_type_impl< Ts... >::type
 
template<std::size_t Begin, std::size_t End, typename... Ts>
using extract_helper_tuple = typename extract_helper_tuple_impl< 0, Begin, End, Ts... >::type
 
template<std::size_t I, typename... Types>
using ith_type = typename ith_type_impl< I, Types... >::type
 

Functions

template<std::size_t I, std::size_t Begin, std::size_t End>
constexpr auto 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 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 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 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 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 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 front_number = front_number_impl<Is...>::value
 
template<std::size_t... Is>
static auto constexpr back_number = back_number_impl<Is...>::value
 
template<std::size_t I, std::size_t... Nums>
static auto constexpr ith_number
 
template<std::size_t X, std::size_t... Is>
static constexpr auto contains = contains_impl<X, Is...>::value
 

Typedef Documentation

◆ back_type

template<typename... Ts>
using tatooine::variadic::back_type = typedef typename back_type_impl<Ts...>::type

◆ extract_helper_tuple

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

◆ front_type

template<typename... Ts>
using tatooine::variadic::front_type = typedef typename front_type_impl<Ts...>::type

◆ ith_type

template<std::size_t I, typename... Types>
using tatooine::variadic::ith_type = typedef typename ith_type_impl<I, Types...>::type

Function Documentation

◆ extract()

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

Extracts variadic data into an array in the Range of Begin and End.

◆ extract_to_array() [1/2]

template<std::size_t I, std::size_t Begin, std::size_t End>
constexpr auto tatooine::variadic::extract_to_array ( auto &  extracted_data) -> auto&
constexpr

Extracts variadic data into an array in the Range of Begin and End.

◆ extract_to_array() [2/2]

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

Extracts variadic data into an array in the Range of Begin and End.

◆ extract_to_tuple() [1/3]

template<std::size_t I, std::size_t Begin, std::size_t End>
constexpr auto tatooine::variadic::extract_to_tuple ( auto &  extracted_data) -> auto&
constexpr

Extracts variadic data into an array in the Range of Begin and End.

◆ extract_to_tuple() [2/3]

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

Extracts variadic data into an array in the Range of Begin and End.

◆ extract_to_tuple() [3/3]

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

Extracts variadic data into an array in the Range of Begin and End.

Variable Documentation

◆ back_number

template<std::size_t... Is>
auto constexpr tatooine::variadic::back_number = back_number_impl<Is...>::value
staticconstexpr

◆ contains

template<std::size_t X, std::size_t... Is>
constexpr auto tatooine::variadic::contains = contains_impl<X, Is...>::value
staticconstexpr

◆ front_number

template<std::size_t... Is>
auto constexpr tatooine::variadic::front_number = front_number_impl<Is...>::value
staticconstexpr

◆ ith_number

template<std::size_t I, std::size_t... Nums>
auto constexpr tatooine::variadic::ith_number
staticconstexpr
Initial value:
=
ith_number_impl<I, Nums...>::value