3 #include <fsdk/Types/Result.h>
20 template <
typename R,
typename V,
class Enable =
void>
23 template <
typename R,
typename V>
24 struct ResultValue<R, V, typename std::enable_if<std::is_copy_constructible<V>::value>::type> :
Result<R> {
53 , m_value(std::move(value)) {
61 assert(this->
isOk() &&
"Acessing value of erroneous result.");
72 return std::move(m_value);
96 template <
typename R,
typename V>
97 struct ResultValue<R, V, typename std::enable_if<std::is_copy_constructible<V>::value == false>::type> :
118 , m_value(std::move(value)) {
126 assert(this->
isOk() &&
"Acessing value of erroneous result.");
137 return std::move(m_value);
162 template <
typename R,
typename V>
167 std::forward<V>(value));
V ValueType
Result value type.
Definition: ResultValue.h:103
V && takeValue() noexcept
Gets result value as rvalue.
Definition: ResultValue.h:136
ResultValue(R result, V &&value) noexcept
Initializes result.
Definition: ResultValue.h:51
A structure that encapsulates an action result enumeration.
Definition: Result.h:27
R EnumType
Result enumeration type.
Definition: ResultValue.h:100
R EnumType
Result enumeration type.
Definition: ResultValue.h:26
ResultValue(R result, const V &value) noexcept
Initializes result.
Definition: ResultValue.h:42
const V & getValue() const noexcept
Gets result value.
Definition: ResultValue.h:60
V m_value
Actual value.
Definition: ResultValue.h:149
V && takeValue() noexcept
Gets result value as rvalue.
Definition: ResultValue.h:71
const V & getValue() const noexcept
Gets result value.
Definition: ResultValue.h:125
ResultValue< R, typename std::remove_const< typename std::remove_reference< V >::type >::type > makeResultValue(R result, V &&value) noexcept
Addon for Result to output some value aside the result.
Definition: ResultValue.h:164
Addon for Result to output some value aside the result. Specialization for copiable types...
Definition: ResultValue.h:21
const V * operator->() const noexcept
Gets result value.
Definition: ResultValue.h:144
ResultValue(R result, V &&value) noexcept
Initializes result.
Definition: ResultValue.h:116
ResultValue(R result) noexcept
Initializes result.
Definition: ResultValue.h:34
V ValueType
Result value type.
Definition: ResultValue.h:29
ResultValue(R result) noexcept
Initializes result.
Definition: ResultValue.h:108
const V * operator->() const noexcept
Gets result value.
Definition: ResultValue.h:79
V m_value
Actual value.
Definition: ResultValue.h:84
bool isOk() const noexcept
Checks for a success.
Definition: Result.h:62