Utility¶
CAF includes a few utility classes that are likely to be part of C++ eventually (or already are in newer versions of the standard). However, until these classes are part of the standard library on all supported compilers, we unfortunately have to maintain our own implementations.
Class optional
¶
Represents a value that may or may not exist.
Constructors | |
(T value) |
Constructs an object with a value. |
(none_t = none) |
Constructs an object without a value. |
Observers | |
explicit operator bool() |
Checks whether the object contains a value. |
T* operator->() |
Accesses the contained value. |
T& operator*() |
Accesses the contained value. |
Class expected
¶
Represents the result of a computation that should return a value. If no value
could be produced, the expected<T>
contains an error
(see Errors).
Constructors | |
(T value) |
Constructs an object with a value. |
(error err) |
Constructs an object with an error. |
Observers | |
explicit operator bool() |
Checks whether the object contains a value. |
T* operator->() |
Accesses the contained value. |
T& operator*() |
Accesses the contained value. |
error& error() |
Accesses the contained error. |
Constant unit
¶
The constant unit
of type unit_t
is the equivalent of
void
and can be used to initialize optional<void>
and
expected<void>
.
Constant none
¶
The constant none
of type none_t
can be used to
initialize an optional<T>
to represent “nothing”.