diff --git a/include/etl/result.h b/include/etl/result.h index 6898c12a..95d0fc0c 100644 --- a/include/etl/result.h +++ b/include/etl/result.h @@ -36,6 +36,7 @@ SOFTWARE. #include "platform.h" #include "variant.h" +#include "optional.h" #if ETL_CPP11_NOT_SUPPORTED #if !defined(ETL_IN_UNIT_TEST) @@ -181,7 +182,7 @@ namespace etl //******************************************* bool is_error() const { - return (data.index() == 1U); + return !has_value(); } //******************************************* @@ -199,7 +200,7 @@ namespace etl //******************************************* TValue&& value() { - return etl::move(etl::get(etl::move(data))); + return etl::move(etl::get(data)); } //******************************************* @@ -217,7 +218,7 @@ namespace etl //******************************************* TError&& error() { - return etl::move(etl::get(etl::move(data))); + return etl::move(etl::get(data)); } private: @@ -260,34 +261,34 @@ namespace etl //******************************************* /// Construct from error //******************************************* - result(const TError& err) - : data(err) + result(const TError& error) + : data(error) { } //******************************************* /// Move construct from error //******************************************* - result(TError&& err) - : data(etl::move(err)) + result(TError&& error) + : data(etl::move(error)) { } //******************************************* /// Copy assign from error //******************************************* - result& operator =(const TError& err) + result& operator =(const TError& error) { - data = err; + data = error; return *this; } //******************************************* /// Move assign from error //******************************************* - result& operator =(TError&& err) + result& operator =(TError&& error) { - data = etl::move(err); + data = etl::move(error); return *this; } @@ -296,7 +297,7 @@ namespace etl //******************************************* bool has_value() const { - return (data.index() == 0U); + return !data.has_value(); } //******************************************* @@ -312,7 +313,7 @@ namespace etl //******************************************* bool is_error() const { - return (data.index() == 1U); + return !has_value(); } //******************************************* @@ -321,7 +322,7 @@ namespace etl //******************************************* const TError& error() const { - return etl::get(data); + return data.value(); } //******************************************* @@ -330,12 +331,12 @@ namespace etl //******************************************* TError&& error() { - return etl::get(etl::move(data)); + return etl::move(data.value()); } private: - etl::variant data; + etl::optional data; }; //***************************************************************************** @@ -400,7 +401,7 @@ namespace etl //******************************************* result& operator =(TValue&& value) { - data = etl::move(err); + data = etl::move(value); return *this; } @@ -409,7 +410,7 @@ namespace etl //******************************************* bool has_value() const { - return (data.index() == 1U); + return data.has_value(); } //******************************************* @@ -425,7 +426,7 @@ namespace etl //******************************************* bool is_error() const { - return (data.index() == 0U); + return !has_value(); } //******************************************* @@ -434,7 +435,7 @@ namespace etl //******************************************* const TValue& value() const { - return etl::get(data); + return data.value(); } //******************************************* @@ -443,12 +444,12 @@ namespace etl //******************************************* TValue&& value() { - return etl::get(etl::move(data)); + return etl::move(data.value()); } private: - etl::variant data; + etl::optional data; }; }