#include <optional.h>
Specialization to store rvalue 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 = T && |
template<typename SUPER > | |
using | ResultFunctions = maxon::details::ResultOptFunctions< SUPER > |
Public Member Functions | |
Opt () | |
MAXON_IMPLICIT | Opt (NO_VALUE_TYPE) |
Opt (const Opt &src)=delete | |
Opt & | operator= (const Opt &)=delete |
Opt (Opt &&src) | |
Opt & | operator= (Opt &&src) |
MAXON_IMPLICIT | Opt (typename std::remove_reference< T >::type &&value) |
Bool | HasValue () const |
Bool | operator== (std::nullptr_t) const |
Bool | operator!= (std::nullptr_t) const |
operator Bool () const | |
Result< T > | MoveValue () |
Result< T && > | GetValue () const |
T && | GetValueOr (T &&defaultValue) const |
T && | operator* () const |
T * | ToPointer () const |
template<typename TT , typename = typename std::enable_if<std::is_same<const TT, const T>::value || std::is_base_of<TT, T>::value>::type> | |
operator TT * () const | |
SFINAEHelper< String, T >::type | ToString (const FormatStatement *format=nullptr) const |
HashInt | GetHashCode () const |
Private Member Functions | |
MAXON_ATTRIBUTE_FORCE_INLINE void | CheckValue () const |
Private Attributes | |
T * | _dataPtr |
using ValueType = T&& |
using ResultFunctions = maxon::details::ResultOptFunctions<SUPER> |
Explicit construction with NO_VALUE. Has the same effect as the default constructor.
MAXON_IMPLICIT Opt | ( | typename std::remove_reference< T >::type && | value | ) |
Constructs from rvalue reference.
Bool HasValue | ( | ) | const |
Returns true if this object contains a value.
Bool operator== | ( | std::nullptr_t | ) | const |
Bool operator!= | ( | std::nullptr_t | ) | const |
|
explicit |
Result<T> MoveValue | ( | ) |
Returns the moved out contained value, or IllegalState error if Opt contained no value.
Result<T&&> GetValue | ( | ) | const |
Returns the contained value, or IllegalState error if object contained no value.
T&& GetValueOr | ( | T && | defaultValue | ) | const |
Returns the contained value, or a default value if object contained no value.
T&& operator* | ( | ) | const |
Returns a rvalue reference to the contained value. Results in undefined behavior if object contained no value.
T* ToPointer | ( | ) | const |
operator TT * | ( | ) | const |
Converts the optional reference to a raw pointer. This is supported for interoperability with legacy code.
SFINAEHelper<String, T>::type ToString | ( | const FormatStatement * | format = nullptr | ) | const |
Returns a formated string representation of this optional value.
HashInt GetHashCode | ( | ) | const |
|
private |
|
private |