Template Class base

Class Documentation

template<Trait DestructibleTrait, typename ...Ts>
class base

Public Functions

inline explicit constexpr base(valueless_t tag) noexcept
template<std::size_t I, typename ...Args>
inline explicit constexpr base(in_place_index_t<I>, Args&&... args)
inline constexpr bool valueless_by_exception() const noexcept
inline constexpr std::size_t index() const noexcept

Protected Types

using data_t = recursive_union<DestructibleTrait, 0, Ts...>

Protected Attributes

data_t data_
index_t index_

Protected Static Functions

static inline constexpr std::size_t size()

Friends

friend struct access::base
friend struct visitation::base
inline friend constexpr friend base & as_base (base &b)
inline friend constexpr friend const base & as_base (const base &b)
inline friend constexpr friend base && as_base (base &&b)
inline friend constexpr friend const base && as_base (const base &&b)
inline friend constexpr friend data_t & data (base &b)
inline friend constexpr friend const data_t & data (const base &b)
inline friend constexpr friend data_t && data (base &&b)
inline friend constexpr friend const data_t && data (const base &&b)