Skip to content

Commit c1603b6

Browse files
committed
Add char8_t handling
1 parent 5613e16 commit c1603b6

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

include/boost/decimal/fmt_format.hpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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 <>
459472
struct 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

Comments
 (0)