9#include "../microfmt.hpp"
11#include <system_error>
16template <
typename T>
struct formatter<T, std::enable_if_t<std::is_base_of_v<std::exception, T>>> {
21 RELOCO_BEGIN_UNSAFE_CODE
22 void format(
const T &value,
const sink &out)
const noexcept {
23 const char *msg = value.what();
27 out.write(
"<unknown exception>");
38 RELOCO_BEGIN_UNSAFE_CODE
39 void format(
const std::system_error &value,
const sink &out)
const noexcept {
40 const char *msg = value.what();
45 const auto ec = value.code();
47 out.write(ec.category().name());
52 int_fmt.format(ec.value(), out);
Definition microfmt.hpp:881
reloco::sink sink
Type-erased, zero-allocation output sink.
Definition microfmt.hpp:46
RELOCO_END_UNSAFE_CODE
Definition remote_object.hpp:132