@@ -322,6 +322,19 @@ struct formatter
322322 {
323323 return fmt::format_to (ctx.out (), U" {}" , result);
324324 }
325+ #ifdef BOOST_DECIMAL_HAS_CHAR8_T
326+ else
327+ {
328+ static_assert (std::is_same_v<CharType, char8_t >, " Unsupported wide character type" );
329+ return fmt::format_to (ctx.out (), u8" {}" , result);
330+ }
331+ #else
332+ else
333+ {
334+ static_assert (std::is_same_v<CharType, char >, " Unsupported wide character type" );
335+ return fmt::format_to (ctx.out (), u8" {}" , result);
336+ }
337+ #endif
325338 }
326339
327340 #endif // BOOST_DECIMAL_NO_CXX17_IF_CONSTEXPR
@@ -459,6 +472,34 @@ template <>
459472struct formatter <boost::decimal::decimal_fast128_t , char32_t >
460473 : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal_fast128_t > {};
461474
475+ #ifdef BOOST_DECIMAL_HAS_CHAR8_T
476+
477+ template <>
478+ struct formatter <boost::decimal::decimal32_t , char8_t >
479+ : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal32_t > {};
480+
481+ template <>
482+ struct formatter <boost::decimal::decimal_fast32_t , char8_t >
483+ : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal_fast32_t > {};
484+
485+ template <>
486+ struct formatter <boost::decimal::decimal64_t , char8_t >
487+ : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal64_t > {};
488+
489+ template <>
490+ struct formatter <boost::decimal::decimal_fast64_t , char8_t >
491+ : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal_fast64_t > {};
492+
493+ template <>
494+ struct formatter <boost::decimal::decimal128_t , char8_t >
495+ : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal128_t > {};
496+
497+ template <>
498+ struct formatter <boost::decimal::decimal_fast128_t , char8_t >
499+ : public boost::decimal::detail::fmt_detail::formatter<boost::decimal::decimal_fast128_t > {};
500+
501+ #endif // BOOST_DECIMAL_HAS_CHAR8_T
502+
462503#endif
463504
464505} // namespace fmt
0 commit comments