tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
variadic_union< T, Ts... > Union Template Reference

#include <variadic_union.hpp>

Public Member Functions

template<typename... Args>
constexpr variadic_union (index_constant< 0 >, Args &&... args)
 
template<size_t I, typename... Args>
requires (I > 0)
constexpr variadic_union (index_constant< I >, Args &&... args)
 
constexpr variadic_union (uninitialized_union)
 
constexpr variadic_union (variadic_union &&other)=default
 
constexpr variadic_union (variadic_union const &other)=default
 
constexpr ~variadic_union ()
 
constexpr ~variadic_union ()=default
 
constexpr auto operator= (variadic_union &&other) -> variadic_union &=default
 
constexpr auto operator= (variadic_union const &other) -> variadic_union &=default
 
template<size_t I>
constexpr auto operator[] (index_constant< I >) &&-> auto &&
 
template<size_t I>
constexpr auto operator[] (index_constant< I >) &-> auto &
 
template<size_t I>
constexpr auto operator[] (index_constant< I >) const &&-> auto const &&
 
template<size_t I>
constexpr auto operator[] (index_constant< I >) const &-> auto const &
 

Public Attributes

TETL_NO_UNIQUE_ADDRESShead
 
TETL_NO_UNIQUE_ADDRESS variadic_union< Ts... > tail
 

Constructor & Destructor Documentation

◆ variadic_union() [1/5]

template<typename T, typename... Ts>
variadic_union ( uninitialized_union )
inlineexplicitconstexpr

◆ variadic_union() [2/5]

template<typename T, typename... Ts>
template<typename... Args>
variadic_union ( index_constant< 0 > ,
Args &&... args )
inlineexplicitconstexpr

◆ variadic_union() [3/5]

template<typename T, typename... Ts>
template<size_t I, typename... Args>
requires (I > 0)
variadic_union ( index_constant< I > ,
Args &&... args )
inlineexplicitconstexpr

◆ variadic_union() [4/5]

template<typename T, typename... Ts>
variadic_union ( variadic_union< T, Ts... > const & other)
constexprdefault

◆ variadic_union() [5/5]

template<typename T, typename... Ts>
variadic_union ( variadic_union< T, Ts... > && other)
constexprdefault

◆ ~variadic_union() [1/2]

template<typename T, typename... Ts>
~variadic_union ( )
constexprdefault

◆ ~variadic_union() [2/2]

template<typename T, typename... Ts>
~variadic_union ( )
inlineconstexpr

Member Function Documentation

◆ operator=() [1/2]

template<typename T, typename... Ts>
auto operator= ( variadic_union< T, Ts... > && other) -> variadic_union &=default
constexprdefault

◆ operator=() [2/2]

template<typename T, typename... Ts>
auto operator= ( variadic_union< T, Ts... > const & other) -> variadic_union &=default
constexprdefault

◆ operator[]() [1/4]

template<typename T, typename... Ts>
template<size_t I>
auto operator[] ( index_constant< I > ) && -> auto&&
inlineconstexpr

◆ operator[]() [2/4]

template<typename T, typename... Ts>
template<size_t I>
auto operator[] ( index_constant< I > ) & -> auto&
inlineconstexpr

◆ operator[]() [3/4]

template<typename T, typename... Ts>
template<size_t I>
auto operator[] ( index_constant< I > ) const && -> auto const&&
inlineconstexpr

◆ operator[]() [4/4]

template<typename T, typename... Ts>
template<size_t I>
auto operator[] ( index_constant< I > ) const & -> auto const&
inlineconstexpr

Member Data Documentation

◆ head

template<typename T, typename... Ts>
TETL_NO_UNIQUE_ADDRESS T head

◆ tail

template<typename T, typename... Ts>
TETL_NO_UNIQUE_ADDRESS variadic_union<Ts...> tail

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