From 82407c1c4c9526e7dc408e936478c8619ded8c66 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Mon, 11 May 2015 18:39:56 +0200 Subject: Fix up makefile and add functional insert and find implementation --- Maybe.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Maybe.h (limited to 'Maybe.h') diff --git a/Maybe.h b/Maybe.h new file mode 100644 index 0000000..df12478 --- /dev/null +++ b/Maybe.h @@ -0,0 +1,21 @@ +#pragma once + +template +class Maybe{ + typedef struct { + T v; + } t_v_wrapper; + + bool is_something; + t_v_wrapper *wr; +public: + Maybe(void):is_something(false),wr(nullptr){} + Maybe(const T &_v):is_something(true),wr(new t_v_wrapper({_v})){} + + operator bool() const{return this->is_something;} + + T value(void){ + if(is_something)return wr->v; + throw "Nothing"; + } +}; -- cgit v1.2.3-70-g09d2