#include <optional.h>
Public Member Functions | |
| OptDefaultStorage () | |
| OptDefaultStorage (NO_VALUE_TYPE) | |
| OptDefaultStorage & | operator= (NO_VALUE_TYPE) |
| MAXON_DECLARE_CONDITIONAL_COPY_CONSTRUCTOR (OptDefaultStorage, std::is_copy_constructible< T >::value) | |
| template<typename U , typename = typename std::enable_if<std::is_constructible<T, const U&>::value>::type> | |
| OptDefaultStorage (const OptDefaultStorage< U > &src) | |
| MAXON_DECLARE_CONDITIONAL_COPY_ASSIGNMENT (OptDefaultStorage, std::is_copy_assignable< T >::value) | |
| template<typename U , typename = typename std::enable_if<std::is_assignable<T, const U&>::value>::type> | |
| OptDefaultStorage & | operator= (const OptDefaultStorage< U > &src) |
| MAXON_DECLARE_CONDITIONAL_MOVE_CONSTRUCTOR (OptDefaultStorage, std::is_move_constructible< T >::value) | |
| template<typename U , typename = typename std::enable_if<std::is_constructible<T, U&&>::value>::type> | |
| OptDefaultStorage (OptDefaultStorage< U > &&src) | |
| MAXON_DECLARE_CONDITIONAL_MOVE_ASSIGNMENT (OptDefaultStorage, std::is_move_assignable< T >::value) | |
| template<typename U , typename = typename std::enable_if<std::is_assignable<T, U&&>::value>::type> | |
| OptDefaultStorage & | operator= (OptDefaultStorage< U > &&src) |
| template<typename U > | |
| OptDefaultStorage (U &&value) | |
| template<typename U > | |
| OptDefaultStorage & | operator= (U &&value) |
| template<typename ... ARGS> | |
| OptDefaultStorage (IN_PLACE_TYPE, ARGS &&... args) | |
| template<typename ... ARGS> | |
| void | Emplace (ARGS &&... args) |
| Result< void > | CopyFrom (const OptDefaultStorage &src) |
| ~OptDefaultStorage () | |
| T & | GetValueRef () |
| const T & | GetValueRef () const |
| Bool | HasValue () const |
Private Member Functions | |
| template<typename U > | |
| void | CopyConstruct (const OptDefaultStorage< U > &src) |
| template<typename U > | |
| void | CopyAssign (const OptDefaultStorage< U > &src) |
| template<typename U > | |
| void | MoveConstruct (OptDefaultStorage< U > &&src) |
| template<typename U > | |
| void | MoveAssign (OptDefaultStorage< U > &&src) |
| void | ClearValue () |
| void | Destruct () |
Private Attributes | |
| Bool | _hasValue |
| union { | |
| T _valueStorage | |
| }; | |
|
explicit |
| OptDefaultStorage | ( | const OptDefaultStorage< U > & | src | ) |
| OptDefaultStorage | ( | OptDefaultStorage< U > && | src | ) |
|
explicit |
|
explicit |
| ~OptDefaultStorage | ( | ) |
| OptDefaultStorage& operator= | ( | NO_VALUE_TYPE | ) |
| MAXON_DECLARE_CONDITIONAL_COPY_CONSTRUCTOR | ( | OptDefaultStorage< T > | , |
| std::is_copy_constructible< T >::value | |||
| ) |
| MAXON_DECLARE_CONDITIONAL_COPY_ASSIGNMENT | ( | OptDefaultStorage< T > | , |
| std::is_copy_assignable< T >::value | |||
| ) |
| OptDefaultStorage& operator= | ( | const OptDefaultStorage< U > & | src | ) |
| MAXON_DECLARE_CONDITIONAL_MOVE_CONSTRUCTOR | ( | OptDefaultStorage< T > | , |
| std::is_move_constructible< T >::value | |||
| ) |
| MAXON_DECLARE_CONDITIONAL_MOVE_ASSIGNMENT | ( | OptDefaultStorage< T > | , |
| std::is_move_assignable< T >::value | |||
| ) |
| OptDefaultStorage& operator= | ( | OptDefaultStorage< U > && | src | ) |
| OptDefaultStorage& operator= | ( | U && | value | ) |
| void Emplace | ( | ARGS &&... | args | ) |
| Result<void> CopyFrom | ( | const OptDefaultStorage< T > & | src | ) |
| T& GetValueRef | ( | ) |
| const T& GetValueRef | ( | ) | const |
| Bool HasValue | ( | ) | const |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| T _valueStorage |
| union { ... } |