Skip to content

Introduction

Definition of class maybe

namespace mitama {
template <class T,
          class = void // for detection idiom
>
class maybe;
}

Concepts

T must satisfy the following requirements:

  • Complete type (if T is not reference type) or Reference Type (possibly incomplete type)

  • Destructible

just/nothing

just and nothing are in-place factory for maybe<T>.

If you want to initialize maybe<T> with some value, initialize with just(value).

mitama::maybe<int> some_int = mitama::just(42);

Similarly, if you want to initialize maybe<T> with none value, initialize with nothing.

mitama::maybe<int> nope_int = mitama::nothing;