#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 { ... } |