forked from fmtlib/fmt
Move data to format.cc
This commit is contained in:
@ -152,52 +152,6 @@ template <> FMT_FUNC int count_digits<4>(detail::fallback_uintptr n) {
|
|||||||
// log10(2) = 0x0.4d104d427de7fbcc...
|
// log10(2) = 0x0.4d104d427de7fbcc...
|
||||||
static constexpr uint64_t log10_2_significand = 0x4d104d427de7fbcc;
|
static constexpr uint64_t log10_2_significand = 0x4d104d427de7fbcc;
|
||||||
|
|
||||||
// DEPRECATED!
|
|
||||||
template <typename T = void> struct basic_data {
|
|
||||||
FMT_API static constexpr const char digits[100][2] = {
|
|
||||||
{'0', '0'}, {'0', '1'}, {'0', '2'}, {'0', '3'}, {'0', '4'}, {'0', '5'},
|
|
||||||
{'0', '6'}, {'0', '7'}, {'0', '8'}, {'0', '9'}, {'1', '0'}, {'1', '1'},
|
|
||||||
{'1', '2'}, {'1', '3'}, {'1', '4'}, {'1', '5'}, {'1', '6'}, {'1', '7'},
|
|
||||||
{'1', '8'}, {'1', '9'}, {'2', '0'}, {'2', '1'}, {'2', '2'}, {'2', '3'},
|
|
||||||
{'2', '4'}, {'2', '5'}, {'2', '6'}, {'2', '7'}, {'2', '8'}, {'2', '9'},
|
|
||||||
{'3', '0'}, {'3', '1'}, {'3', '2'}, {'3', '3'}, {'3', '4'}, {'3', '5'},
|
|
||||||
{'3', '6'}, {'3', '7'}, {'3', '8'}, {'3', '9'}, {'4', '0'}, {'4', '1'},
|
|
||||||
{'4', '2'}, {'4', '3'}, {'4', '4'}, {'4', '5'}, {'4', '6'}, {'4', '7'},
|
|
||||||
{'4', '8'}, {'4', '9'}, {'5', '0'}, {'5', '1'}, {'5', '2'}, {'5', '3'},
|
|
||||||
{'5', '4'}, {'5', '5'}, {'5', '6'}, {'5', '7'}, {'5', '8'}, {'5', '9'},
|
|
||||||
{'6', '0'}, {'6', '1'}, {'6', '2'}, {'6', '3'}, {'6', '4'}, {'6', '5'},
|
|
||||||
{'6', '6'}, {'6', '7'}, {'6', '8'}, {'6', '9'}, {'7', '0'}, {'7', '1'},
|
|
||||||
{'7', '2'}, {'7', '3'}, {'7', '4'}, {'7', '5'}, {'7', '6'}, {'7', '7'},
|
|
||||||
{'7', '8'}, {'7', '9'}, {'8', '0'}, {'8', '1'}, {'8', '2'}, {'8', '3'},
|
|
||||||
{'8', '4'}, {'8', '5'}, {'8', '6'}, {'8', '7'}, {'8', '8'}, {'8', '9'},
|
|
||||||
{'9', '0'}, {'9', '1'}, {'9', '2'}, {'9', '3'}, {'9', '4'}, {'9', '5'},
|
|
||||||
{'9', '6'}, {'9', '7'}, {'9', '8'}, {'9', '9'}};
|
|
||||||
FMT_API static constexpr const char hex_digits[] = "0123456789abcdef";
|
|
||||||
FMT_API static constexpr const char signs[4] = {0, '-', '+', ' '};
|
|
||||||
FMT_API static constexpr const char left_padding_shifts[5] = {31, 31, 0, 1,
|
|
||||||
0};
|
|
||||||
FMT_API static constexpr const char right_padding_shifts[5] = {0, 31, 0, 1,
|
|
||||||
0};
|
|
||||||
FMT_API static constexpr const unsigned prefixes[4] = {0, 0, 0x1000000u | '+',
|
|
||||||
0x1000000u | ' '};
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef FMT_SHARED
|
|
||||||
// Required for -flto, -fivisibility=hidden and -shared to work
|
|
||||||
extern template struct basic_data<void>;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __cplusplus < 201703L
|
|
||||||
// DEPRECATED! These are here only for ABI compatiblity.
|
|
||||||
template <typename T> constexpr const char basic_data<T>::digits[][2];
|
|
||||||
template <typename T> constexpr const char basic_data<T>::hex_digits[];
|
|
||||||
template <typename T> constexpr const char basic_data<T>::signs[];
|
|
||||||
template <typename T> constexpr const char basic_data<T>::left_padding_shifts[];
|
|
||||||
template <typename T>
|
|
||||||
constexpr const char basic_data<T>::right_padding_shifts[];
|
|
||||||
template <typename T> constexpr const unsigned basic_data<T>::prefixes[];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template <typename T> struct bits {
|
template <typename T> struct bits {
|
||||||
static FMT_CONSTEXPR_DECL const int value =
|
static FMT_CONSTEXPR_DECL const int value =
|
||||||
static_cast<int>(sizeof(T) * std::numeric_limits<unsigned char>::digits);
|
static_cast<int>(sizeof(T) * std::numeric_limits<unsigned char>::digits);
|
||||||
|
@ -10,6 +10,52 @@
|
|||||||
FMT_BEGIN_NAMESPACE
|
FMT_BEGIN_NAMESPACE
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
|
// DEPRECATED!
|
||||||
|
template <typename T = void> struct basic_data {
|
||||||
|
FMT_API static constexpr const char digits[100][2] = {
|
||||||
|
{'0', '0'}, {'0', '1'}, {'0', '2'}, {'0', '3'}, {'0', '4'}, {'0', '5'},
|
||||||
|
{'0', '6'}, {'0', '7'}, {'0', '8'}, {'0', '9'}, {'1', '0'}, {'1', '1'},
|
||||||
|
{'1', '2'}, {'1', '3'}, {'1', '4'}, {'1', '5'}, {'1', '6'}, {'1', '7'},
|
||||||
|
{'1', '8'}, {'1', '9'}, {'2', '0'}, {'2', '1'}, {'2', '2'}, {'2', '3'},
|
||||||
|
{'2', '4'}, {'2', '5'}, {'2', '6'}, {'2', '7'}, {'2', '8'}, {'2', '9'},
|
||||||
|
{'3', '0'}, {'3', '1'}, {'3', '2'}, {'3', '3'}, {'3', '4'}, {'3', '5'},
|
||||||
|
{'3', '6'}, {'3', '7'}, {'3', '8'}, {'3', '9'}, {'4', '0'}, {'4', '1'},
|
||||||
|
{'4', '2'}, {'4', '3'}, {'4', '4'}, {'4', '5'}, {'4', '6'}, {'4', '7'},
|
||||||
|
{'4', '8'}, {'4', '9'}, {'5', '0'}, {'5', '1'}, {'5', '2'}, {'5', '3'},
|
||||||
|
{'5', '4'}, {'5', '5'}, {'5', '6'}, {'5', '7'}, {'5', '8'}, {'5', '9'},
|
||||||
|
{'6', '0'}, {'6', '1'}, {'6', '2'}, {'6', '3'}, {'6', '4'}, {'6', '5'},
|
||||||
|
{'6', '6'}, {'6', '7'}, {'6', '8'}, {'6', '9'}, {'7', '0'}, {'7', '1'},
|
||||||
|
{'7', '2'}, {'7', '3'}, {'7', '4'}, {'7', '5'}, {'7', '6'}, {'7', '7'},
|
||||||
|
{'7', '8'}, {'7', '9'}, {'8', '0'}, {'8', '1'}, {'8', '2'}, {'8', '3'},
|
||||||
|
{'8', '4'}, {'8', '5'}, {'8', '6'}, {'8', '7'}, {'8', '8'}, {'8', '9'},
|
||||||
|
{'9', '0'}, {'9', '1'}, {'9', '2'}, {'9', '3'}, {'9', '4'}, {'9', '5'},
|
||||||
|
{'9', '6'}, {'9', '7'}, {'9', '8'}, {'9', '9'}};
|
||||||
|
FMT_API static constexpr const char hex_digits[] = "0123456789abcdef";
|
||||||
|
FMT_API static constexpr const char signs[4] = {0, '-', '+', ' '};
|
||||||
|
FMT_API static constexpr const char left_padding_shifts[5] = {31, 31, 0, 1,
|
||||||
|
0};
|
||||||
|
FMT_API static constexpr const char right_padding_shifts[5] = {0, 31, 0, 1,
|
||||||
|
0};
|
||||||
|
FMT_API static constexpr const unsigned prefixes[4] = {0, 0, 0x1000000u | '+',
|
||||||
|
0x1000000u | ' '};
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef FMT_SHARED
|
||||||
|
// Required for -flto, -fivisibility=hidden and -shared to work
|
||||||
|
extern template struct basic_data<void>;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201703L
|
||||||
|
// DEPRECATED! These are here only for ABI compatiblity.
|
||||||
|
template <typename T> constexpr const char basic_data<T>::digits[][2];
|
||||||
|
template <typename T> constexpr const char basic_data<T>::hex_digits[];
|
||||||
|
template <typename T> constexpr const char basic_data<T>::signs[];
|
||||||
|
template <typename T> constexpr const char basic_data<T>::left_padding_shifts[];
|
||||||
|
template <typename T>
|
||||||
|
constexpr const char basic_data<T>::right_padding_shifts[];
|
||||||
|
template <typename T> constexpr const unsigned basic_data<T>::prefixes[];
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
int format_float(char* buf, std::size_t size, const char* format, int precision,
|
int format_float(char* buf, std::size_t size, const char* format, int precision,
|
||||||
T value) {
|
T value) {
|
||||||
|
Reference in New Issue
Block a user