13 #ifndef __NET_OUTCOME_H__
14 #define __NET_OUTCOME_H__
24 template <
typename T,
typename E>
33 template <
typename T,
typename E>
42 template <
typename T,
typename E>
51 template <
typename T,
typename E = UT_ErrorCode>
63 bool hasValue()
const {
return std::holds_alternative<T>(myValue); }
64 bool hasError()
const {
return std::holds_alternative<E>(myValue); }
65 bool hasException()
const {
return std::holds_alternative<exception_type>(myValue); }
77 return std::move(this->
value());
89 std::variant<T, E, std::exception_ptr> myValue;
92 #endif // __NET_OUTCOME_H__
NET_Outcome(const E &err)
result_type operator()(const T &)
exception_type exceptionPtr() const
result_type operator()(const E &e)
NET_Outcome(const std::exception_ptr &ptr)
GLsizei const GLfloat * value
result_type operator()(const T &)
result_type operator()(const std::exception_ptr &ptr)
result_type operator()(const std::exception_ptr &ptr)
std::exception_ptr exception_type
result_type operator()(const E &err)
result_type operator()(const std::exception_ptr &ptr)
bool hasException() const
const error_type & error() const
const T & value() const &
result_type operator()(const E &e)
std::exception_ptr result_type
result_type operator()(T &value)