Template Struct expected_storage_base< T, E, true, true >

Struct Documentation

template<class T, class E>
struct expected_storage_base<T, E, true, true>

Public Functions

inline constexpr expected_storage_base()
inline constexpr expected_storage_base(no_init_t)
template<class ...Args, detail::enable_if_t<std::is_constructible<T, Args&&...>::value>* = nullptr>
inline constexpr expected_storage_base(in_place_t, Args&&... args)
template<class U, class ...Args, detail::enable_if_t<std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value>* = nullptr>
inline constexpr expected_storage_base(in_place_t, std::initializer_list<U> il, Args&&... args)
template<class ...Args, detail::enable_if_t<std::is_constructible<E, Args&&...>::value>* = nullptr>
inline explicit constexpr expected_storage_base(unexpect_t, Args&&... args)
template<class U, class ...Args, detail::enable_if_t<std::is_constructible<E, std::initializer_list<U>&, Args&&...>::value>* = nullptr>
inline explicit constexpr expected_storage_base(unexpect_t, std::initializer_list<U> il, Args&&... args)
expected_storage_base(const expected_storage_base&) = default
expected_storage_base(expected_storage_base&&) = default
expected_storage_base &operator=(const expected_storage_base&) = default
expected_storage_base &operator=(expected_storage_base&&) = default
~expected_storage_base() = default

Public Members

T m_val
unexpected<E> m_unexpect
char m_no_init
union tl::detail::expected_storage_base< T, E, true, true >
bool m_has_val
union tl::detail::expected_storage_base