1919
2020_LIBCPP_BEGIN_NAMESPACE_STD
2121
22+ #if _LIBCPP_STD_VER >= 17
23+
2224namespace __itoa {
2325
24- inline _LIBCPP_CONSTEXPR const char __base_2_lut[64 ] = {
26+ inline constexpr char __base_2_lut[64 ] = {
2527 ' 0' , ' 0' , ' 0' , ' 0' , ' 0' , ' 0' , ' 0' , ' 1' , ' 0' , ' 0' , ' 1' , ' 0' , ' 0' , ' 0' , ' 1' , ' 1' , ' 0' , ' 1' , ' 0' , ' 0' , ' 0' , ' 1' ,
2628 ' 0' , ' 1' , ' 0' , ' 1' , ' 1' , ' 0' , ' 0' , ' 1' , ' 1' , ' 1' , ' 1' , ' 0' , ' 0' , ' 0' , ' 1' , ' 0' , ' 0' , ' 1' , ' 1' , ' 0' , ' 1' , ' 0' ,
2729 ' 1' , ' 0' , ' 1' , ' 1' , ' 1' , ' 1' , ' 0' , ' 0' , ' 1' , ' 1' , ' 0' , ' 1' , ' 1' , ' 1' , ' 1' , ' 0' , ' 1' , ' 1' , ' 1' , ' 1' };
2830
29- inline _LIBCPP_CONSTEXPR const char __base_8_lut[128 ] = {
31+ inline constexpr char __base_8_lut[128 ] = {
3032 ' 0' , ' 0' , ' 0' , ' 1' , ' 0' , ' 2' , ' 0' , ' 3' , ' 0' , ' 4' , ' 0' , ' 5' , ' 0' , ' 6' , ' 0' , ' 7' , ' 1' , ' 0' , ' 1' , ' 1' , ' 1' , ' 2' ,
3133 ' 1' , ' 3' , ' 1' , ' 4' , ' 1' , ' 5' , ' 1' , ' 6' , ' 1' , ' 7' , ' 2' , ' 0' , ' 2' , ' 1' , ' 2' , ' 2' , ' 2' , ' 3' , ' 2' , ' 4' , ' 2' , ' 5' ,
3234 ' 2' , ' 6' , ' 2' , ' 7' , ' 3' , ' 0' , ' 3' , ' 1' , ' 3' , ' 2' , ' 3' , ' 3' , ' 3' , ' 4' , ' 3' , ' 5' , ' 3' , ' 6' , ' 3' , ' 7' , ' 4' , ' 0' ,
3335 ' 4' , ' 1' , ' 4' , ' 2' , ' 4' , ' 3' , ' 4' , ' 4' , ' 4' , ' 5' , ' 4' , ' 6' , ' 4' , ' 7' , ' 5' , ' 0' , ' 5' , ' 1' , ' 5' , ' 2' , ' 5' , ' 3' ,
3436 ' 5' , ' 4' , ' 5' , ' 5' , ' 5' , ' 6' , ' 5' , ' 7' , ' 6' , ' 0' , ' 6' , ' 1' , ' 6' , ' 2' , ' 6' , ' 3' , ' 6' , ' 4' , ' 6' , ' 5' , ' 6' , ' 6' ,
3537 ' 6' , ' 7' , ' 7' , ' 0' , ' 7' , ' 1' , ' 7' , ' 2' , ' 7' , ' 3' , ' 7' , ' 4' , ' 7' , ' 5' , ' 7' , ' 6' , ' 7' , ' 7' };
3638
37- inline _LIBCPP_CONSTEXPR const char __base_16_lut[512 ] = {
39+ inline constexpr char __base_16_lut[512 ] = {
3840 ' 0' , ' 0' , ' 0' , ' 1' , ' 0' , ' 2' , ' 0' , ' 3' , ' 0' , ' 4' , ' 0' , ' 5' , ' 0' , ' 6' , ' 0' , ' 7' , ' 0' , ' 8' , ' 0' , ' 9' , ' 0' , ' a' , ' 0' ,
3941 ' b' , ' 0' , ' c' , ' 0' , ' d' , ' 0' , ' e' , ' 0' , ' f' , ' 1' , ' 0' , ' 1' , ' 1' , ' 1' , ' 2' , ' 1' , ' 3' , ' 1' , ' 4' , ' 1' , ' 5' , ' 1' , ' 6' ,
4042 ' 1' , ' 7' , ' 1' , ' 8' , ' 1' , ' 9' , ' 1' , ' a' , ' 1' , ' b' , ' 1' , ' c' , ' 1' , ' d' , ' 1' , ' e' , ' 1' , ' f' , ' 2' , ' 0' , ' 2' , ' 1' , ' 2' ,
@@ -59,7 +61,7 @@ inline _LIBCPP_CONSTEXPR const char __base_16_lut[512] = {
5961 ' 1' , ' f' , ' 2' , ' f' , ' 3' , ' f' , ' 4' , ' f' , ' 5' , ' f' , ' 6' , ' f' , ' 7' , ' f' , ' 8' , ' f' , ' 9' , ' f' , ' a' , ' f' , ' b' , ' f' , ' c' ,
6062 ' f' , ' d' , ' f' , ' e' , ' f' , ' f' };
6163
62- inline _LIBCPP_CONSTEXPR const uint32_t __pow10_32[10 ] = {
64+ inline constexpr uint32_t __pow10_32[10 ] = {
6365 UINT32_C (0 ),
6466 UINT32_C (10 ),
6567 UINT32_C (100 ),
@@ -71,7 +73,7 @@ inline _LIBCPP_CONSTEXPR const uint32_t __pow10_32[10] = {
7173 UINT32_C (100000000 ),
7274 UINT32_C (1000000000 )};
7375
74- inline _LIBCPP_CONSTEXPR const uint64_t __pow10_64[20 ] = {
76+ inline constexpr uint64_t __pow10_64[20 ] = {
7577 UINT64_C (0 ),
7678 UINT64_C (10 ),
7779 UINT64_C (100 ),
@@ -94,8 +96,8 @@ inline _LIBCPP_CONSTEXPR const uint64_t __pow10_64[20] = {
9496 UINT64_C (10000000000000000000 )};
9597
9698# if _LIBCPP_HAS_INT128
97- inline _LIBCPP_CONSTEXPR const int __pow10_128_offset = 0 ;
98- inline _LIBCPP_CONSTEXPR const __uint128_t __pow10_128[40 ] = {
99+ inline constexpr int __pow10_128_offset = 0 ;
100+ inline constexpr __uint128_t __pow10_128[40 ] = {
99101 UINT64_C (0 ),
100102 UINT64_C (10 ),
101103 UINT64_C (100 ),
@@ -138,7 +140,7 @@ inline _LIBCPP_CONSTEXPR const __uint128_t __pow10_128[40] = {
138140 (__uint128_t (UINT64_C (10000000000000000000 )) * UINT64_C (10000000000000000000 )) * 10 };
139141# endif
140142
141- inline _LIBCPP_CONSTEXPR const char __digits_base_10[200 ] = {
143+ inline constexpr char __digits_base_10[200 ] = {
142144 // clang-format off
143145 ' 0' , ' 0' , ' 0' , ' 1' , ' 0' , ' 2' , ' 0' , ' 3' , ' 0' , ' 4' , ' 0' , ' 5' , ' 0' , ' 6' , ' 0' , ' 7' , ' 0' , ' 8' , ' 0' , ' 9' ,
144146 ' 1' , ' 0' , ' 1' , ' 1' , ' 1' , ' 2' , ' 1' , ' 3' , ' 1' , ' 4' , ' 1' , ' 5' , ' 1' , ' 6' , ' 1' , ' 7' , ' 1' , ' 8' , ' 1' , ' 9' ,
@@ -154,6 +156,8 @@ inline _LIBCPP_CONSTEXPR const char __digits_base_10[200] = {
154156
155157} // namespace __itoa
156158
159+ #endif // _LIBCPP_STD_VER >= 17
160+
157161_LIBCPP_END_NAMESPACE_STD
158162
159163#endif // _LIBCPP___CHARCONV_TABLES
0 commit comments