diff --git a/include/fmt/std.h b/include/fmt/std.h index 24bf2c53..1583ca21 100644 --- a/include/fmt/std.h +++ b/include/fmt/std.h @@ -218,11 +218,15 @@ struct formatter< auto out = ctx.out(); out = detail::write(out, "variant("); - std::visit( - [&](const auto& v) { - out = detail::write_variant_alternative(out, v); - }, - value); + try { + std::visit( + [&](const auto& v) { + out = detail::write_variant_alternative(out, v); + }, + value); + } catch (const std::bad_variant_access&) { + detail::write(out, "valueless by exception"); + } *out++ = ')'; return out; }