Opt< T & > Class Template Reference

#include <optional.h>

详细描述

template<typename T>
class maxon::Opt< T & >

Specialization to store 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 = T &
template<typename SUPER >
using  ResultFunctions = maxon::details::ResultOptFunctions < SUPER >

公共成员函数

  Opt ()
MAXON_IMPLICIT   Opt ( NO_VALUE_TYPE )
  Opt (const Opt & src )
Opt operator= (const Opt & src )
MAXON_IMPLICIT   Opt (T &value)
Opt operator= (T &value)
MAXON_IMPLICIT   Opt (T *valuePtr)
Opt operator= (T *valuePtr)
Bool   HasValue () const
  operator Bool ()
  operator Bool () const
Result < T & >  GetValue () const
T &  GetValueOr (T &defaultValue) const
const T *  operator-> () const
T *  operator-> ()
const T &  operator* () const
T &  operator* ()
T *  ToPointer ()
const T *  ToPointer () const
  operator T* ()
  operator const T * ()

私有成员函数

MAXON_ATTRIBUTE_FORCE_INLINE void  CheckValue () const

Private Attributes

T *  _dataPtr

Member Typedef Documentation

◆  ValueType

using ValueType = T&

◆  ResultFunctions

using ResultFunctions = maxon::details::ResultOptFunctions <SUPER>

构造函数 & 析构函数文档编制

◆  Opt() [1/5]

Opt ( )

Default constructor. Creates an Optional with no value.

◆  Opt() [2/5]

MAXON_IMPLICIT Opt ( NO_VALUE_TYPE   )

Explicit construction with NO_VALUE. Has the same effect as the default constructor.

◆  Opt() [3/5]

Opt ( const Opt < T & > &  src )

Copy constructor.

◆  Opt() [4/5]

MAXON_IMPLICIT Opt ( T &  value )

Constructs from reference.

◆  Opt() [5/5]

MAXON_IMPLICIT Opt ( T *  valuePtr )

Constructs from raw pointer.

成员函数文档编制

◆  operator=() [1/3]

Opt & operator= ( const Opt < T & > &  src )

Copy assignment.

◆  operator=() [2/3]

Opt & operator= ( T &  value )

Assign from reference.

◆  operator=() [3/3]

Opt & operator= ( T *  valuePtr )

Assign from raw pointer.

◆  HasValue()

Bool HasValue ( ) const

Returns true if this object contains a value.

◆  operator Bool() [1/2]

operator Bool ( )
explicit

◆  operator Bool() [2/2]

operator Bool ( ) const
explicit

◆  GetValue()

Result <T&> GetValue ( ) const

Returns the contained value, or IllegalState error if object contained no value.

◆  GetValueOr()

T& GetValueOr ( T &  defaultValue ) const

Returns the contained value, or a default value if object contained no value.

◆  operator->() [1/2]

const T* operator-> ( ) const

Returns a pointer to the contained value. Results in undefined behavior if object contained no value.

◆  operator->() [2/2]

T* operator-> ( )

◆  operator*() [1/2]

const T& operator* ( ) const

Returns a reference to the contained value. Results in undefined behavior if object contained no value.

◆  operator*() [2/2]

T& operator* ( )

◆  ToPointer() [1/2]

T* ToPointer ( )

◆  ToPointer() [2/2]

const T* ToPointer ( ) const

◆  operator T*()

operator T* ( )

Converts the optional reference to a raw pointer. This is supported for interoperability with legacy code.

◆  operator const T *()

operator const T * ( )

◆  CheckValue()

MAXON_ATTRIBUTE_FORCE_INLINE void CheckValue ( ) const
private

Member Data Documentation

◆  _dataPtr

T* _dataPtr private