This is the C++ template metaprogramming equivalent of Haskell's Maybe monad plus.
<mpllibs/metamonad/maybe.hpp>maybe_tagmzero: nothingmplus:
nothing, the result is nothingnothing, the result is the other argumentnothing, the result is the first argumentCopyright Abel Sinkovics (abel at elte dot hu) 2011. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt