Commit Graph

1299 Commits

Author SHA1 Message Date
Victor Zverovich 934c8e5f76 Refactor precision parsing 2022-12-24 13:29:23 -08:00
Victor Zverovich 840ec8569d Cleanup width handlers 2022-12-23 19:18:35 -08:00
Victor Zverovich 1dadeb8a33 Refactor width parsing 2022-12-23 18:29:59 -08:00
Victor Zverovich b90895412f Fix formatting of named arguments with locale 2022-12-15 09:59:40 -08:00
Vladislav Shchapov d24be2e95c Add countl_zero function
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-11-30 12:25:01 -08:00
Vladislav Shchapov 91c024ed33 Rename leading_v -> leading_xdigit
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-11-25 09:08:40 -08:00
Vladislav Shchapov 31364732dc Replace snprintf-based hex float formatter with internal implementation
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-11-24 07:15:46 -08:00
Vladislav Shchapov 74d55a4938 Add missing operators
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-11-24 07:15:46 -08:00
Vladislav Shchapov 81ebe70b9b Fix warning: a class type that is not trivially copyable passed through ellipsis (EDG frontend)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-11-22 10:51:00 -08:00
Hans-Martin B. Jensen 7df30f91ae Format unique_ptr with custom deleter (#3177)
* Format unique_ptr with custom deleter

Added deleter type to fmt::ptr unique_ptr overload. Deleter type is
part of the unique_ptr type.

* Review: apply clang-format

Co-authored-by: Hans-Martin B. Jensen <haje@eposaudio.com>
2022-11-13 21:54:32 -08:00
Ihor Dutchak cfb34a0607 Avoid using uint as a type name (#3137)
Sometime `uint` is defined as a global type by the project's code directly or by some 3rdparty libraries (e.g. Qt or OpenCV).
Some versions of MSVC (e.g. v16.11.15) gives a type shadowing warning:
```
3rdparty\fmtlib\fmt\include\fmt/format.h(3251): warning C4459: declaration of 'uint' hides global declaration
opencv2/core/hal/interface.h(45): note: see declaration of 'uint'
```
This also causes a compilation failure when `/WX` is used.
2022-10-12 10:53:47 -07:00
Victor Zverovich 0b5cb18b71 Use buffering in to_string to avoid bloat 2022-09-21 17:11:43 -07:00
Victor Zverovich ac85afaab6 Simplify format_error 2022-09-16 14:25:14 -07:00
Björn Schäpers 042af53324 Suppress -Wfloat-equal
Only NaN and Inf are not less than Inf and the check for NaN is done
before.

Solves:
.../fmt/include/fmt/format.h:2509:43: warning: comparing floating-point with '==' or '!=' is unsafe [-Wfloat-equal]
 2509 |     return !detail::isnan(value) && value != inf && value != -inf;
2022-09-13 11:14:30 -07:00
Victor Zverovich 192859c2b5 Optimize writing to buffers via back_insert_iterator 2022-09-12 15:32:12 -07:00
Victor Zverovich 94ceb38a09 Improve locale API 2022-09-11 09:33:31 -07:00
Victor Zverovich 58c4c012fa Disable slow windows build and simplify write_loc 2022-09-11 08:35:09 -07:00
Victor Zverovich c3494ae364 Refactor float localization 2022-09-11 07:47:27 -07:00
gerboengels 3176e0fad7 Add locale overload for formatted_size (#3084) (#3087)
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-09-07 14:15:12 -07:00
Victor Zverovich b98ffb7dbd Improve locale handling 2022-09-04 21:07:30 -07:00
Victor Zverovich d59b89e9cd More locale 2022-09-04 11:23:45 -07:00
Victor Zverovich 58a5563a9f Implement grouping 2022-09-04 09:01:26 -07:00
Victor Zverovich 1b94271ff6 Add support for UTF-8 digit separators 2022-09-03 11:01:05 -07:00
Victor Zverovich 768d79a839 Implement format_facet 2022-09-03 09:42:36 -07:00
Victor Zverovich 91ecb38a34 Localize negative integers 2022-09-03 07:01:11 -07:00
Victor Zverovich fec5515c55 num_format_facet -> format_facet 2022-09-02 18:55:08 -07:00
Victor Zverovich f187274d36 Add loc_value 2022-09-02 13:45:23 -07:00
Victor Zverovich fc5e59fe4a Don't use stringstream 2022-09-02 13:05:26 -07:00
Victor Zverovich d6a8704605 Improve locale support 2022-09-02 11:52:19 -07:00
Victor Zverovich 48327a82e3 Make format.h compile faster 2022-09-01 17:06:47 -07:00
Victor Zverovich b79ed4105a Remove unnecessary type_identity 2022-09-01 16:29:08 -07:00
Victor Zverovich 64e29893cf Improve locale support 2022-09-01 14:48:43 -07:00
Victor Zverovich 0b0f7cfbfc hip workaround 2022-09-01 09:18:53 -07:00
Greg Sjaardema 40e414d823 Fix compilation error with gcc-7.2.0
Without the added line, the gcc-7.2.0 compiler will give the following error:
```
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:1240:8: error: uninitialized variable 'buffer' in 'constexpr' function
   Char buffer[digits10<UInt>() + 1];
        ^~~~~~
```
See https://godbolt.org/z/fh7TMs9qs
2022-08-30 10:55:57 -07:00
Vladislav Shchapov f98048b621 Fix bugs in utf8 decoder (#3056)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-26 15:37:15 -07:00
Vladislav Shchapov 489dabbd31 Fix decoder on broken utf8 sequences. (#3044)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-24 07:13:27 -07:00
Victor Zverovich 1f95c34381 Fix sign handling with large code units 2022-08-20 07:46:58 -07:00
Olli Lupton fbb568bce0 nvhpc/22.3: workaround for c++17 mode. (#3043) 2022-08-18 11:30:40 -07:00
Mark Santaniello fd93b633b8 Constexpr formatted_size (#3026)
* Constexpr formatted_size

* Add C++20 tests for gcc 9 and 10

* Adjust unit test to require __cpp_lib_bit_cast
2022-08-10 09:35:30 -07:00
Hannes Friederich b9087ee587 Suppress unused typedef warning 2022-08-05 15:27:01 -07:00
Vladislav Shchapov 36a25d75b4 Reuse detail::string_literal in the chrono formatter
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-05 06:15:59 -07:00
Victor Zverovich e9ca7ea472 Suppress a bogus warning 2022-07-28 07:12:49 -07:00
Dimitrij Mijoski 81f1cc74a7 Improve Unicode handling when writing to an ostream on Windows (#2994)
* Refactor detail::print() by splitting into two functions.

The part with SetConsoleW is a separate function, without fwrite().

* Make Unicode handing when writing to std::ostream more robust.

Calls to print(ostream&) in the special Unicode case on Windows fallback
to writing via ostream::write instead of fwrite().

* Fix Unicode handling when writing to an ostream on GCC on Windows

* Add TODO note about detail::is_utf8()

* Fix warning -Wundef

* Fix for non-Windows OSs

* Fix building as DLL on Windows

* Refactor

* Suppress warning
2022-07-23 08:03:31 -07:00
Federico bc5c7c50fd Fixes IBM XLC behavior with uint128 fallback (#2985)
* Fixes IBM XLC behavior with uint128 fallback

* Replace legacy xlc with clang-based xlc

* simplify xlc intrinsics handling

Co-authored-by: Federico Busato <fbusato@nvidia.com>
2022-07-22 13:49:17 -07:00
Victor Zverovich 371f9c71ca Fix even in format_dragon 2022-07-19 08:36:34 -07:00
Victor Zverovich 91abfcd6cf Suppress an msvc warning 2022-07-16 08:57:09 -07:00
Junekey Jeon 688a627d6c Remove unused constants. 2022-07-14 15:25:35 -07:00
Junekey Jeon 8061d9afbe Simplify Dragonbox implementation 2022-07-14 15:25:35 -07:00
Victor Zverovich 2a1b3ac629 Fix large shift in uint128_fallback 2022-07-10 08:27:21 -07:00
Vladislav Shchapov 115e00e0b9 Replace __cplusplus with FMT_CPLUSPLUS.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-07-04 07:18:21 -07:00