Xmipp  v3.23.11-Nereus
Classes | Public Member Functions | List of all members
core::optional< T > Class Template Reference

#include <optional.h>

Public Member Functions

 optional ()
 
 optional (const T &&t)
 
 optional (const T &t)
 
 optional (const optional &&o)
 
optionaloperator= (optional &&o)
 
 ~optional ()
 
constexpr operator bool () const
 
constexpr bool has_value () const
 
T & value () const
 

Detailed Description

template<typename T>
class core::optional< T >

Definition at line 24 of file optional.h.

Constructor & Destructor Documentation

◆ optional() [1/4]

template<typename T>
core::optional< T >::optional ( )
inline

Definition at line 26 of file optional.h.

26  :
27  p(new payload()) {
28  }

◆ optional() [2/4]

template<typename T>
core::optional< T >::optional ( const T &&  t)
inline

Definition at line 30 of file optional.h.

30  :
31  p(new payload_full(t)) {
32  }

◆ optional() [3/4]

template<typename T>
core::optional< T >::optional ( const T &  t)
inline

Definition at line 35 of file optional.h.

35  :
36  p(new payload_full(t)) {
37  }

◆ optional() [4/4]

template<typename T>
core::optional< T >::optional ( const optional< T > &&  o)
inline

Definition at line 40 of file optional.h.

40  {
41  delete p;
42  this->p = o.p;
43  }

◆ ~optional()

template<typename T>
core::optional< T >::~optional ( )
inline

Definition at line 54 of file optional.h.

54  {
55  delete p;
56  p = nullptr;
57  }

Member Function Documentation

◆ has_value()

template<typename T>
constexpr bool core::optional< T >::has_value ( ) const
inline

Definition at line 63 of file optional.h.

63  {
64  return p->has_value;
65  }

◆ operator bool()

template<typename T>
constexpr core::optional< T >::operator bool ( ) const
inlineexplicit

Definition at line 59 of file optional.h.

59  {
60  return p->has_value;
61  }

◆ operator=()

template<typename T>
optional& core::optional< T >::operator= ( optional< T > &&  o)
inline

Definition at line 45 of file optional.h.

45  {
46  if (this != &o) {
47  delete p;
48  this->p = o.p;
49  o.p = nullptr;
50  }
51  return *this;
52  }

◆ value()

template<typename T>
T& core::optional< T >::value ( ) const
inline

Definition at line 67 of file optional.h.

67  {
68  assert(p->has_value);
69  return static_cast<payload_full*>(p)->t;
70  }

The documentation for this class was generated from the following file: