|  | 
|  | Optional (const Optional &src) | 
|  | 
|  | Optional (Optional &&src) | 
|  | 
| template<typename U  = BaseType, typename  = typename std::enable_if<				std::is_constructible<BaseType, U &&>::value &&				!(std::is_same<typename std::decay<U>::type, self_type>::value)		>::type> | 
|  | Optional (U &&value) | 
|  | 
| template<typename... Args, typename  = typename std::enable_if<std::is_constructible<BaseType, Args...>::value>::type> | 
|  | Optional (In_place_t tag, Args &&...args) | 
|  | 
| Optional & | operator= (Optional &&src) noexcept | 
|  | 
| Optional & | operator= (const Optional &src) | 
|  | 
| template<typename U  = BaseType, typename  = typename std::enable_if<				!std::is_same<typename std::decay<U>::type, self_type>::value &&				std::is_constructible<BaseType, U>::value &&				std::is_assignable<BaseType &, U>::value		>::type> | 
| Optional & | operator= (U &&value) | 
|  | 
| void | reset () | 
|  | 
| constexpr | operator bool () const | 
|  | 
| constexpr bool | has_value () const | 
|  | 
| constexpr bool | valid () const | 
|  | 
| BaseType & | operator* ()& | 
|  | 
| const BaseType & | operator* () const & | 
|  | 
| BaseType && | operator* ()&& | 
|  | 
| const BaseType && | operator* () const && | 
|  | 
| BaseType * | operator-> () | 
|  | 
| const BaseType * | operator-> () const | 
|  | 
| BaseType & | value () | 
|  | 
| const BaseType & | value () const | 
|  | 
| template<typename U > | 
| BaseType | value_or (U &&default_value)&& | 
|  | 
| template<typename U > | 
| const BaseType | value_or (U &&default_value) const & | 
|  | 
| template<typename... Args> | 
| BaseType & | emplace (Args &&...args) | 
|  | 
The documentation for this class was generated from the following file: