#pragma once #include #include "Betriebssystem.h" namespace Frmaework { template class Maybe { private: bool set; T value; Maybe() { set = 0; } public: static Maybe of( T value ) { return { 1, value }; } static Maybe empty() { return { 0, value }; } bool isEmpty() const { return !set; } bool isPresent() const { return set; } operator T() const { assert( set ); return value; } void ifPresent( std::function action ) { if( set ) action( value ); } void ifNotPresent( std::function action ) { if( !set ) action( value ); } T operator->() { assert( set ); return current->var; } }; }