Make Result able to return an error string
This commit is contained in:
parent
fc0779a2f9
commit
1d51935d43
@ -2,6 +2,7 @@
|
|||||||
#include <Check.h>
|
#include <Check.h>
|
||||||
#include <Move.h>
|
#include <Move.h>
|
||||||
#include <PlacementNew.h>
|
#include <PlacementNew.h>
|
||||||
|
#include <SystemError.h>
|
||||||
#include <Types.h>
|
#include <Types.h>
|
||||||
|
|
||||||
struct Error
|
struct Error
|
||||||
@ -92,6 +93,12 @@ template <typename T> class Result
|
|||||||
return {m_error};
|
return {m_error};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* error_string()
|
||||||
|
{
|
||||||
|
check(has_error());
|
||||||
|
return ::error_string(m_error);
|
||||||
|
}
|
||||||
|
|
||||||
T value()
|
T value()
|
||||||
{
|
{
|
||||||
check(has_value());
|
check(has_value());
|
||||||
@ -224,6 +231,12 @@ template <> class Result<void>
|
|||||||
return {m_error};
|
return {m_error};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* error_string()
|
||||||
|
{
|
||||||
|
check(has_error());
|
||||||
|
return ::error_string(m_error);
|
||||||
|
}
|
||||||
|
|
||||||
void value()
|
void value()
|
||||||
{
|
{
|
||||||
check(has_value());
|
check(has_value());
|
||||||
@ -242,7 +255,7 @@ template <> class Result<void>
|
|||||||
};
|
};
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define err Error{0}
|
#define err(x) Error{x}
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
#define TRY(expr) \
|
#define TRY(expr) \
|
||||||
|
Loading…
Reference in New Issue
Block a user