#include <optional.h>
Specialization to store const lvalue references, which only uses a single pointer internally. This can be used to treat pointers that may be null as optional references for more descriptive interfaces.
Public Types | |
using | ValueType = const T & |
template<typename SUPER > | |
using | ResultFunctions = maxon::details::ResultOptFunctions< SUPER > |
Public Member Functions | |
Opt () | |
MAXON_IMPLICIT | Opt (NO_VALUE_TYPE) |
Opt (const Opt &src) | |
Opt & | operator= (const Opt &src) |
MAXON_IMPLICIT | Opt (const T &value) |
MAXON_IMPLICIT | Opt (const T *valuePtr) |
Bool | HasValue () const |
operator Bool () | |
operator Bool () const | |
Result< const T & > | GetValue () const |
const T & | GetValueOr (const T &defaultValue) const |
T | GetValueOr (T &&defaultValue) const |
const T & | GetValueOrNull () const |
const T * | operator-> () const |
const T & | operator* () const |
const T * | ToPointer () const |
operator const T * () | |
Private Member Functions | |
MAXON_ATTRIBUTE_FORCE_INLINE void | CheckValue () const |
Private Attributes | |
const T * | _dataPtr |
using ValueType = const T& |
using ResultFunctions = maxon::details::ResultOptFunctions<SUPER> |
Explicit construction with NO_VALUE. Has the same effect as the default constructor.
MAXON_IMPLICIT Opt | ( | const T & | value | ) |
Constructs from const reference.
MAXON_IMPLICIT Opt | ( | const T * | valuePtr | ) |
Constructs from raw pointer.
Bool HasValue | ( | ) | const |
Returns true if this object contains a value.
|
explicit |
|
explicit |
Result<const T&> GetValue | ( | ) | const |
Returns the contained value, or IllegalState error if object contained no value.
const T& GetValueOr | ( | const T & | defaultValue | ) | const |
Returns the contained value, or a default value if object contained no value.
T GetValueOr | ( | T && | defaultValue | ) | const |
Returns the contained value, or a default value if object contained no value.
const T& GetValueOrNull | ( | ) | const |
Returns the contained value, or a null value if object contained no value.
const T* operator-> | ( | ) | const |
Returns a pointer to the contained value. Results in undefined behavior if object contained no value.
const T& operator* | ( | ) | const |
Returns a reference to the contained value. Results in undefined behavior if object contained no value.
const T* ToPointer | ( | ) | const |
operator const T * | ( | ) |
Converts the optional reference to a raw pointer. This is supported for interoperability with legacy code.
|
private |
|
private |