Program Listing for File try.hpp

Return to documentation for file (include/rsl/try.hpp)

#pragma once

#include <tl_expected/expected.hpp>

#define TRY(expected)                                                              \
    ({                                                                             \
        auto const& _expected = (expected); /* Uglify name to prevent shadowing */ \
        if (!_expected.has_value()) return tl::unexpected(_expected.error());      \
        _expected.value();                                                         \
    })