QuickCppLib 0.10
Eliminate all the tedious hassle when making state-of-the-art C++ 14 - 23 libraries!
Loading...
Searching...
No Matches
std::experimental::optional_base< T > Struct Template Reference

#include "optional.hpp"

Public Member Functions

constexpr optional_base () noexcept
 
constexpr optional_base (const T &v)
 
constexpr optional_base (T &&v)
 
template<class... Args>
 optional_base (in_place_t, Args &&... args)
 
template<class U , class... Args, TR2_OPTIONAL_REQUIRES(is_constructible< T, std::initializer_list< U > >) >
 optional_base (in_place_t, std::initializer_list< U > il, Args &&... args)
 
 ~optional_base ()
 

Public Attributes

bool init_
 
storage_t< T > storage_
 

Constructor & Destructor Documentation

◆ optional_base() [1/5]

template<class T >
constexpr std::experimental::optional_base< T >::optional_base ( )
inlineconstexprnoexcept
315: init_(false), storage_(trivial_init) {};
constexpr struct std::experimental::trivial_init_t trivial_init
bool init_
Definition optional.hpp:312
storage_t< T > storage_
Definition optional.hpp:313

◆ optional_base() [2/5]

template<class T >
constexpr std::experimental::optional_base< T >::optional_base ( const T &  v)
inlineexplicitconstexpr
317: init_(true), storage_(v) {}

◆ optional_base() [3/5]

template<class T >
constexpr std::experimental::optional_base< T >::optional_base ( T &&  v)
inlineexplicitconstexpr
319: init_(true), storage_(constexpr_move(v)) {}
constexpr std::remove_reference< T >::type && constexpr_move(T &&t) noexcept
Definition optional.hpp:193

◆ optional_base() [4/5]

template<class T >
template<class... Args>
std::experimental::optional_base< T >::optional_base ( in_place_t  ,
Args &&...  args 
)
inlineexplicit
322 : init_(true), storage_(constexpr_forward<Args>(args)...) {}

◆ optional_base() [5/5]

template<class T >
template<class U , class... Args, TR2_OPTIONAL_REQUIRES(is_constructible< T, std::initializer_list< U > >) >
std::experimental::optional_base< T >::optional_base ( in_place_t  ,
std::initializer_list< U >  il,
Args &&...  args 
)
inlineexplicit
326 : init_(true), storage_(il, std::forward<Args>(args)...) {}

◆ ~optional_base()

template<class T >
std::experimental::optional_base< T >::~optional_base ( )
inline
328{ if (init_) storage_.value_.T::~T(); }

Member Data Documentation

◆ init_

template<class T >
bool std::experimental::optional_base< T >::init_

◆ storage_

template<class T >
storage_t<T> std::experimental::optional_base< T >::storage_

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