Struct nebula::util::expected
template <typename T, typename E>
ClassList > nebula > util > expected
A poor man's backport of C++23's std::expected. More...
#include <expected.hpp>
Public Functions
Type | Name |
---|---|
E | error () Retrieve the error, or throw bad_expected_access if a value is contained. |
E | error_or (const E & default_) Return the contained error, or, if a value is contained, return the given default_ instead. |
expected (const T & value) |
|
expected (const E & error) |
|
bool | has_value () Whether the expected instance holds a value (as opposed to an error). Call this before trying to access values via value() . |
T | value () Retrieve the value, or throw bad_expected_access if an error is contained. |
T | value_or (const T & default_) Return the contained value, or, if an error is contained, return the given default_ instead. |
T | value_or_throw (const std::string & error_msg) If the instance has a value, return the value, else throw std::runtime_error(error_msg) |
T | value_or_throw () If the instance has a value, return the value, else throw the stored error instance. |
Detailed Description
At any given time, holds exactly one of: expected value, or error value. Provides functions for easy exception handling.
More info here: https://en.cppreference.com/w/cpp/utility/expected
Template parameters:
T
Type of the expected valueE
Error type
Public Functions Documentation
function error
Retrieve the error, or throw bad_expected_access
if a value is contained.
inline E nebula::util::expected::error ()
Returns:
The error of type E
function error_or
Return the contained error, or, if a value is contained, return the given default_
instead.
inline E nebula::util::expected::error_or (
const E & default_
)
Returns:
The contained error, if any, else default_
function expected [1/2]
inline nebula::util::expected::expected (
const T & value
)
function expected [2/2]
inline nebula::util::expected::expected (
const E & error
)
function has_value
Whether the expected instance holds a value (as opposed to an error). Call this before trying to access values via value()
.
inline bool nebula::util::expected::has_value ()
Returns:
True if a value is contained, false if an error is contained
function value
Retrieve the value, or throw bad_expected_access
if an error is contained.
inline T nebula::util::expected::value ()
Returns:
The value of type T
function value_or
Return the contained value, or, if an error is contained, return the given default_
instead.
inline T nebula::util::expected::value_or (
const T & default_
)
Returns:
The contained value, if any, else default_
function value_or_throw [1/2]
If the instance has a value, return the value, else throw std::runtime_error(error_msg)
inline T nebula::util::expected::value_or_throw (
const std::string & error_msg
)
Parameters:
error_msg
The message to be included in the thrown exception
Returns:
The value
function value_or_throw [2/2]
If the instance has a value, return the value, else throw the stored error instance.
inline T nebula::util::expected::value_or_throw ()
The documentation for this class was generated from the following file nebula_common/include/nebula_common/util/expected.hpp