Niall Douglas wrote:
More importantly though, is that reference API documentation what people were looking for? With clauses for effects, requires, throws etc?
Yes, this is the style the C++ standard uses.
Do I need to write more detail for the APIs, or is what is there enough?
You could be more detailed in places. For example,
""
Function template outcome::policy::throw_directly::narrow_value_check
template <class Impl>
static constexpr void narrow_value_check(Impl* self) noexcept;
Performs a narrow check of state, used in the assume_value() functions
""
You have to say what happens, that is, you're missing the Effects clause
here.
Another minor comment:
noexcept(noexcept(value_type(std::forward<T>(t)))&&noexcept(error_type(std::forward<U>(u))));
This is usually written as
noexcept(is_nothrow_constructible_v