7 #ifndef ELM_UTIL_OPTION_H
8 #define ELM_UTIL_OPTION_H
10 #include <elm/assert.h>
11 #include <elm/type_info.h>
28 inline bool isOne(
void)
const {
return one; }
29 inline bool isNone(
void)
const {
return !one; }
33 inline operator bool(
void)
const {
return isOne(); }
35 inline operator T(
void)
const {
return value(); }
37 { one = opt.one;
if(one) val = opt.val;
return *
this; }
Option< T > some(T val)
Definition: Option.h:49
T embed_t
Definition: type_info.h:43
Option(void)
Definition: Option.h:24
bool isOne(void) const
Definition: Option.h:28
bool isNone(void) const
Definition: Option.h:29
Option(T value)
Definition: Option.h:26
static const T & get(const T &v)
Definition: type_info.h:49
static void put(T &l, const T &v)
Definition: type_info.h:48
Option< T > & operator=(const Option< T > &opt)
Definition: Option.h:36
Option< T > & operator=(T value)
Definition: Option.h:38
Option(const OptionalNone &none)
Definition: Option.h:25
Option(const Option< T > &opt)
Definition: Option.h:27
const OptionalNone none
Definition: util_Option.cpp:134
T operator*(void) const
Definition: Option.h:34
T value(void) const
Definition: Option.h:30