Skip to content

Commit 1e0b907

Browse files
committed
Specialize for base 16
1 parent ca047d2 commit 1e0b907

File tree

1 file changed

+3
-16
lines changed

1 file changed

+3
-16
lines changed

include/boost/decimal/detail/to_chars_integer_impl.hpp

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,10 @@ BOOST_DECIMAL_CONSTEXPR auto to_chars_integer_impl(char* first, char* last, Inte
8787
char* end = buffer + buffer_size - 1;
8888

8989
// Work from LSB to MSB
90-
switch (base)
90+
while (unsigned_value != 0U)
9191
{
92-
case 16:
93-
while (unsigned_value != 0U)
94-
{
95-
*end-- = digit_table[static_cast<std::size_t>(unsigned_value & 15U)]; // 1<<4 - 1
96-
unsigned_value >>= 4U;
97-
}
98-
break;
99-
100-
default:
101-
while (unsigned_value != 0U)
102-
{
103-
*end-- = digit_table[static_cast<std::size_t>(unsigned_value % unsigned_base)];
104-
unsigned_value /= unsigned_base;
105-
}
106-
break;
92+
*end-- = digit_table[static_cast<std::size_t>(unsigned_value & 15U)]; // 1<<4 - 1
93+
unsigned_value >>= 4U;
10794
}
10895

10996
const std::ptrdiff_t num_chars = buffer_end - end - 1;

0 commit comments

Comments
 (0)