template class EE::Result<void, E>

Overview

Result specialization for operations that produce no value on success. More…

#include <result.hpp>

template <typename E>
class Result<void, E> {
public:
    // typedefs

    typedef void ValueType;
    typedef E ErrorType;

    // fields

    E mError;

    // construction

    Result(OkValue<void>);

    template <typename G, std::enable_if_t<std::is_constructible_v<E, G&&>, int> = 0>
    Result(ErrValue<G>&& err);

    template <typename G, std::enable_if_t<std::is_constructible_v<E, const G&>, int> = 0>
    Result(const ErrValue<G>& err);

    Result(const Result& other);
    Result(Result&& other);
    ~Result();

    // methods

    Result& operator=(const Result& other);
    Result& operator=(Result&& other);
    bool hasValue() const;
    bool hasError() const;
    operator bool() const;
    void value() const;
    E& error();
    const E& error() const;
    E&& error();
};

Detailed Documentation

Result specialization for operations that produce no value on success.

Methods

void value() const

Validates success; provided for symmetry with the non-void Result.