Maybe Result
|

Maybe Result is a return value wrapper that can contain either a value T
or error E
. It borrows ideas heavily from the C++17's `std::experimental::optional`, Rust's std::result and the `std::expected` that was proposed but not yet accepted for C++17.
std::experimental::optional
?Has a value for error instead of nullopt
.
std::expected
?It does not require the error to be an exception, and does not fall back to exceptions. All values must be checked, similar to std::experimental::optional
.
This is header-only library. We recommend to add src
to included directories, so that the include would be:
``` #include <maybe/result.hpp> ```
A C++ compiler shat supports C++14 is required. You can use -std=c++14
flag for sufficiently recent versions of GCC
(5.2) or CLANG
(3.7).
Warning! Library is highly experimental and is not guaranteed to work.
``` cmake . make tests && ./tests/tests ```
There is a script that does this automatically:
``` ./dev/run-tests.sh ```
In addition to this, you can run tests on all supported compilers using docker:
``` ./dev/docker-run-tests.sh ```
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.