Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
tatooine::tuple< Head, Tail... > Struct Template Reference

#include <tuple.h>

Collaboration diagram for tatooine::tuple< Head, Tail... >:
[legend]

Public Types

template<std::size_t I>
using type_at = variadic::ith_type< I, Head, Tail... >
 

Public Member Functions

template<typename... Tail_>
 tuple (Head &&head_, Tail_ &&... tail_)
 
template<std::convertible_to< Head > Head_, typename... Tail_>
 tuple (Head_ &&head_, Tail_ &&... tail_)
 
 tuple ()=default
 
 tuple (tuple const &)=default
 
 tuple (tuple &&) noexcept=default
 
 ~tuple ()=default
 
auto operator= (tuple const &) -> tuple &=default
 
auto operator= (tuple &&) noexcept -> tuple &=default
 
template<typename T = Head>
auto as_pointer ()
 
template<std::size_t I>
requires (I < size())
auto at () const -> auto const &
 
template<std::size_t I>
requires (I < size())
auto at () -> auto &
 
template<std::invocable< Head > F>
requires (std::invocable<F, Tail>&&...)
auto iterate (F &&f)
 
template<std::invocable< Head > F>
requires (std::invocable<F, Tail>&&...)
auto iterate (F &&f) const
 

Static Public Member Functions

static auto constexpr size ()
 

Public Attributes

Head head
 
tuple< Tail... > tail
 

Member Typedef Documentation

◆ type_at

template<typename Head , typename... Tail>
template<std::size_t I>
using tatooine::tuple< Head, Tail... >::type_at = variadic::ith_type<I, Head, Tail...>

Constructor & Destructor Documentation

◆ tuple() [1/5]

template<typename Head , typename... Tail>
template<typename... Tail_>
tatooine::tuple< Head, Tail... >::tuple ( Head &&  head_,
Tail_ &&...  tail_ 
)
inline

◆ tuple() [2/5]

template<typename Head , typename... Tail>
template<std::convertible_to< Head > Head_, typename... Tail_>
tatooine::tuple< Head, Tail... >::tuple ( Head_ &&  head_,
Tail_ &&...  tail_ 
)
inline

◆ tuple() [3/5]

template<typename Head , typename... Tail>
tatooine::tuple< Head, Tail... >::tuple ( )
default

◆ tuple() [4/5]

template<typename Head , typename... Tail>
tatooine::tuple< Head, Tail... >::tuple ( tuple< Head, Tail... > const &  )
default

◆ tuple() [5/5]

template<typename Head , typename... Tail>
tatooine::tuple< Head, Tail... >::tuple ( tuple< Head, Tail... > &&  )
defaultnoexcept

◆ ~tuple()

template<typename Head , typename... Tail>
tatooine::tuple< Head, Tail... >::~tuple ( )
default

Member Function Documentation

◆ as_pointer()

template<typename Head , typename... Tail>
template<typename T = Head>
auto tatooine::tuple< Head, Tail... >::as_pointer ( )
inline

◆ at() [1/2]

template<typename Head , typename... Tail>
template<std::size_t I>
requires (I < size())
auto tatooine::tuple< Head, Tail... >::at ( ) -> auto&
inline

◆ at() [2/2]

template<typename Head , typename... Tail>
template<std::size_t I>
requires (I < size())
auto tatooine::tuple< Head, Tail... >::at ( ) const -> auto const&
inline

◆ iterate() [1/2]

template<typename Head , typename... Tail>
template<std::invocable< Head > F>
requires (std::invocable<F, Tail>&&...)
auto tatooine::tuple< Head, Tail... >::iterate ( F &&  f)
inline

◆ iterate() [2/2]

template<typename Head , typename... Tail>
template<std::invocable< Head > F>
requires (std::invocable<F, Tail>&&...)
auto tatooine::tuple< Head, Tail... >::iterate ( F &&  f) const
inline

◆ operator=() [1/2]

template<typename Head , typename... Tail>
auto tatooine::tuple< Head, Tail... >::operator= ( tuple< Head, Tail... > &&  ) -> tuple &=default
defaultnoexcept

◆ operator=() [2/2]

template<typename Head , typename... Tail>
auto tatooine::tuple< Head, Tail... >::operator= ( tuple< Head, Tail... > const &  ) -> tuple &=default
default

◆ size()

template<typename Head , typename... Tail>
static auto constexpr tatooine::tuple< Head, Tail... >::size ( )
inlinestaticconstexpr

Member Data Documentation

◆ head

template<typename Head , typename... Tail>
Head tatooine::tuple< Head, Tail... >::head

◆ tail

template<typename Head , typename... Tail>
tuple<Tail...> tatooine::tuple< Head, Tail... >::tail

The documentation for this struct was generated from the following file: