Vladislav Shchapov
9d5b9defde
Enable tzset only on Windows desktop app ( #2633 )
2021-12-07 15:22:36 -08:00
Victor Zverovich
215f21a038
Detect overflow on large precision
2021-12-05 07:26:58 -08:00
Vladislav Shchapov
c240d98ffd
Optimize tm formatting (Non C-locales and %Z) ( #2617 )
...
* Move fmt::detail::formatbuf to format.h
* Replace std::basic_ostringstream to std::basic_ostream with custom formatbuf
* Use tm.tm_zone
2021-12-04 11:02:31 -08:00
Andrew Corrigan
6ab73113fc
Mark grow as FMT_CONSTEXPR20 ( #2630 )
...
resolves https://github.com/fmtlib/fmt/issues/2627
2021-12-03 07:13:30 -08:00
Victor Zverovich
c472a27818
Fix handling of very large precision in fixed format
2021-11-27 08:23:05 -08:00
Alex Guteniev
201971e293
Make MSVC use [[nodiscard]] ( #2615 )
...
* Make MSVC use [[nodiscard]]
* Uniformly detect attributes for __cplusplus and _MSVC_LANG
2021-11-26 07:32:50 -08:00
Florin Iucha
acad8cfab1
Reformat all source code; no functional changes
...
Before adding the format checker, the mainline should be clean, to
avoid false failures.
2021-11-25 09:15:25 -08:00
Florin Iucha
491ba2dda5
Annotate fmt::format and fmt::formatted_size as [[nodiscard]]
...
This prevents accidentally writing fmt::format when fmt::print was
intended. Other than running tests, there's not a good use case for
discarding the formatted output.
2021-11-25 07:30:30 -08:00
Vladislav Shchapov
5abe9e8266
Add platform-specific 'z' formatter
2021-11-25 06:52:39 -08:00
Vladislav Shchapov
be3a3a5aed
Use predefined formats for C-locale
2021-11-25 06:52:39 -08:00
Alex Guteniev
a3ab36c803
Formatting of function pointers, member function pointers, member object pointers... ( #2610 )
2021-11-23 12:55:22 -08:00
Victor Zverovich
43419a4ada
Workaround a bug in gcc
2021-11-19 07:32:42 -08:00
Vladislav Shchapov
c089f7d497
Simplify std::tm formatter
2021-11-14 07:16:22 -08:00
Vladislav Shchapov
aa5517f6b9
Reuse tm_writer in chrono_formatter
2021-11-14 07:16:22 -08:00
Vladislav Shchapov
50140be7ae
Reuse tm_writer in weekday formatter
2021-11-14 07:16:22 -08:00
Victor Zverovich
8b89454994
Improve consistency
2021-11-13 08:59:56 -08:00
Victor Zverovich
5380ff4d88
Detect types convertible to unformattable pointers
2021-11-13 08:26:27 -08:00
Pavel Novikov
094b66e81d
changed locale retrieval way to a fancy one
2021-11-12 12:46:38 -08:00
Vladislav Shchapov
b69ae4854c
Reorder classes ( #2591 )
2021-11-10 17:09:23 -08:00
Pavel Novikov
0b843af56b
sped up chrono.h formatting for cases without providing locale ( #2576 )
2021-11-07 08:52:57 -08:00
lukester1975
12b1d8b14a
Fix precision 0 with std::chrono::duration and added additional tests. ( #2588 )
2021-11-06 08:57:22 -07:00
Olli Lupton
e67f92c55c
Cleanup warnings with nvhpc/21.9. ( #2582 )
...
* Cleanup warnings with nvhpc/21.9.
* Move __NVCOMPILER check.
* Be more explicit.
* Immediately executed lambda.
* Fix shadowing warning.
2021-11-05 12:17:11 -07:00
Victor Zverovich
812733cc96
const qualify format function for systen_clock
2021-10-31 09:41:16 -07:00
Victor Zverovich
028f227752
Handle implicit conversions in write
2021-10-31 08:58:54 -07:00
timkalu
0697c5edb6
FMT_USE_FCNTL can be predefined ( #2573 )
...
'os.h' accepts a predefined FMT_USE_FCNTL override so using FMT with e.g. the NXP toolchain for ARM (e.g. for FreeRTOS) does not have a fcntl() call, but the detection routine does not detect this correctly.
2021-10-30 08:35:48 -07:00
Vladislav Shchapov
1031eedf27
Replacing strftime with std::time_put ( #2550 )
...
* Fix unicode test
* Add xchar support to chrono formatter
* Replace strftime with std::time_put
* Add std::locale support to std::tm formatter
* Use predefined names and formats for C-locale
* Performance improvement
* Make locale-independent and C locale formats consistent among platforms
2021-10-30 08:25:45 -07:00
Vladislav Shchapov
90034e4c4b
Add FMT_ASSERT and validation of values of struct tm members ( #2564 )
...
Switch internal year calculations to long long
2021-10-27 13:29:07 -07:00
Daniela Engert
3b6e409cd8
Enable consteval for msvc 17.0-pre5 ( #2559 )
2021-10-23 07:19:57 -07:00
Axel Kohlmeyer
249f03bbb7
do not detect LLVM based IBMXL compiler (on ppc) as clang ( #2555 )
2021-10-20 06:21:49 -07:00
Vladislav Shchapov
7463c83205
Fix overflow for very bigger years (>2*10^9) ( #2551 )
2021-10-19 07:04:55 -07:00
Victor Zverovich
1266c2b600
Fix handling of exotic character types
2021-10-17 09:07:48 -07:00
Victor Zverovich
684e2fdc94
Minor cleanup
2021-10-17 06:33:27 -07:00
Victor Zverovich
a1d586302f
Minor cleanup
2021-10-17 06:07:03 -07:00
Vladislav Shchapov
7a604cdd98
Cleanup
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
aeb54b0dd9
Fix bug on '%Y' and '%C' formats with negative years
...
Requested changes
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
2eeddba756
Renaming, splitting of functions
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
2754546080
Fix errors in ISO week-base-year formatter
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
e9f4453b0e
Fix Microsoft Visual Studio 14.0 build
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
27c3674ce1
Improve performance
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
f8542cd988
Unified formatters for std::chrono::time_point<std::chrono::system_clock, Duration> and std::tm
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
4707373d33
Fix year formatter
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
79c00ad8f2
Improve ISO week-base-year formatter
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
fbaaa5906b
Improve week of the year formatter
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
cde44ddb72
Improve year formatter
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
b04601b918
Switch from std::strftime/std::wcsftime to internal implementation for locale independent formats
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
7911d8d3f5
Add format spec checker
2021-10-16 15:03:57 -07:00
Vladislav Shchapov
fbbfc3b03c
Reorder formatters
2021-10-16 15:03:57 -07:00
Barry Revzin
7aca36bca4
Extending fmt::join to support C++20-only ranges. ( #2549 )
2021-10-16 10:02:03 -07:00
Josh Essman
febdef43f5
fix: add workaround for intel parameter pack bug
2021-10-14 10:44:24 -07:00
Josh Essman
f56756986b
fix: check to make sure both 'if constexpr' and return type deduction are available
...
fix: remaining ifdefs
2021-10-14 10:44:24 -07:00
Victor Zverovich
dcd282bb26
Namespace qualify calls to get
2021-10-09 07:15:14 -07:00
Oliver Lee
9c14474d30
Include <bit> when using std::bit_cast
2021-10-09 06:11:36 -07:00
Roman-Koshelev
7e4bc94510
Speeding up write_significand() ( #2499 )
2021-10-09 05:27:38 -07:00
Pavel Novikov
26c1ca4c3e
Replaced default spec with equivalent one, which is potentially more optimizable ( #2537 )
2021-10-08 07:09:54 -07:00
Vladislav Shchapov
0a985fd4c6
Move size_ initialization to initializer list ( #2529 )
2021-10-02 17:20:33 -07:00
Victor Zverovich
012cc709d0
Workaround gcc _Pragma bug 59884
2021-10-02 15:41:47 -07:00
Victor Zverovich
d6590e3bd2
Fix compiler check
2021-10-02 08:46:18 -07:00
Victor Zverovich
023c2018f7
Don't use strlen in constexpr
2021-10-02 07:17:05 -07:00
Victor Zverovich
800d4c8ac8
Refactor Windows workarounds
2021-10-02 06:06:08 -07:00
Mathias Born
32865aeaab
changed detection of Intel Compiler Classic to distinguish MS-Windows ( #2510 )
...
* changed detection of Intel Compiler Classic to distinguish MS-Windows
* replaced !FMT_ICC_ON_WINDOWS by FMT_ICC_POSIX
removed #pragma manged
* replaced FMT_ICC_POSIX with FMT_ICC_INTRINSIC_BUG to be crystal clear about the macro's purpose
2021-10-02 05:43:41 -07:00
Jonathan W
ae9bbe1169
Suppress warning C4127 in chrono.h (conditional expression is constant) ( #2518 )
2021-09-30 09:14:38 -07:00
Victor Zverovich
2a9a77dd8c
Remove misplaced comment
2021-09-26 18:01:39 -07:00
Victor Zverovich
1aee4bc90a
Refactor FP formatting
2021-09-26 14:37:33 -07:00
Victor Zverovich
e1bd6cc913
Refactor FP formatting
2021-09-26 10:25:46 -07:00
Victor Zverovich
027fcaf05e
Replace use_grisu with fallback since Grisu is only one of multiple implemented algorithms
2021-09-26 08:44:05 -07:00
Victor Zverovich
716d69f27e
Refactor FP formatting
2021-09-26 08:27:18 -07:00
Victor Zverovich
ff7e73af66
Always run grisu_gen_digits before fallback_format
2021-09-26 07:54:25 -07:00
Victor Zverovich
2976e31ac9
Refactor format_float
2021-09-25 11:20:56 -07:00
Victor Zverovich
807ee5ec31
Disable consteval in Apple clang
2021-09-25 05:55:05 -07:00
jk-jeon
9c57357e05
Add static to a table ( #2509 )
2021-09-24 06:25:08 -07:00
Victor Zverovich
2742611cad
Fix formatting
2021-09-18 11:09:24 -07:00
Victor Zverovich
5092b198bc
Document group_digits
2021-09-18 10:50:30 -07:00
Alexey Ochapov
b4d9d82e1d
make FP formatting available to be used at compile-time ( #2426 )
...
* works only with FMT_HEADER_ONLY
* works only with float and double types (not long double)
2021-09-18 08:03:23 -07:00
Vladislav Shchapov
d9fd695ac7
Fix wchar_t tm formatting
2021-09-15 07:33:24 -07:00
Vladislav Shchapov
92614ecbf9
Optimize %T in tm formatting
2021-09-15 07:33:24 -07:00
Victor Zverovich
aaeca12d89
Move FMT_MAYBE_UNUSED to format.h where it is used
2021-09-13 07:51:36 -07:00
Victor Zverovich
3d0c7ae385
Move data to format.cc
2021-09-13 06:23:57 -07:00
Victor Zverovich
04e3a79f76
Use memcpy in more cases in copy2
2021-09-12 12:23:45 -07:00
Roman-Koshelev
e47e99bb09
Simplify format_decimal ( #2498 )
...
* Add copy2() constexpr
* Removed redundant format_decimal implementation for constexpr context
2021-09-12 10:36:06 -07:00
Victor Zverovich
9b6b0e403c
Remove data
2021-09-12 09:46:00 -07:00
Victor Zverovich
4d1c6034eb
Deprecate basic_data
2021-09-12 09:37:23 -07:00
Victor Zverovich
a3348eccdd
Deprecate most of basic_data
2021-09-12 08:59:39 -07:00
Victor Zverovich
3a04481485
Remove data::hex_digits
2021-09-11 17:54:40 -07:00
Victor Zverovich
ad77331c04
Move log10_2_significand to format-inl.h
2021-09-11 09:36:23 -07:00
Victor Zverovich
d9ebc4e821
Add a function to get sign char
2021-09-11 09:17:59 -07:00
Victor Zverovich
c00eb4f4c6
Add missing inline
2021-09-10 09:01:18 -07:00
Victor Zverovich
67cb2dad37
Optimize %F in tm formatting
2021-09-10 07:48:50 -07:00
Roman-Koshelev
1aa98f8b93
Eliminate double copying in vformat_to_n ( #2489 )
2021-09-09 08:10:29 -07:00
Victor Zverovich
a58c133821
Improve code_point_length codegen on older gcc
2021-09-07 19:34:13 -07:00
Victor Zverovich
aeee70a815
Remove unnecessary cast
2021-09-07 10:53:43 -07:00
Jean-Michaël Celerier
c771ba361c
Fix build for the clang-10 / libstdc++-9 couple ( #2491 )
2021-09-07 08:52:34 -07:00
Victor Zverovich
ab6e2272cc
Clarify shifts encoding
2021-09-06 18:45:34 -07:00
Victor Zverovich
e4728409e7
Use throw_format_error in more places to reduce bloat
2021-09-06 16:42:17 -07:00
Victor Zverovich
e3ebf366a6
Inline padding shifts
2021-09-06 16:26:50 -07:00
Victor Zverovich
894faf3fed
Refactor presentation types
2021-09-06 13:32:33 -07:00
Victor Zverovich
4eb97fa4e3
Reduce code bloat
2021-09-05 16:24:20 -07:00
Victor Zverovich
6b55c83252
is_const_formattable -> has_const_formatter
2021-09-05 08:35:08 -07:00
Victor Zverovich
2fe94ad7e3
Make specifiers support in tuple_join an opt-in
2021-09-05 07:34:06 -07:00
Victor Zverovich
3940de5952
thousands -> group_digits
2021-09-05 06:47:18 -07:00
Victor Zverovich
c4d0f96a6d
Implement format specs in fmt::thousands
2021-09-04 06:56:51 -07:00
Victor Zverovich
3b9c442689
Implement thousands separators without locales
2021-09-04 06:32:46 -07:00
Victor Zverovich
08f98c7fac
Simplify get_arg_index_by_name
2021-09-03 21:17:36 -07:00
Victor Zverovich
a151f955a0
Remove FMT_OVERRIDE
2021-09-03 18:15:17 -07:00
Victor Zverovich
42a225cbd9
Remove redundand final
2021-09-03 17:33:26 -07:00
Victor Zverovich
bf20d19901
Simplify the core API
2021-09-03 16:57:33 -07:00
Victor Zverovich
fc0884037e
Move FMT_GCC_VISIBILITY_HIDDEN to format.h
2021-09-03 16:34:42 -07:00
Victor Zverovich
1aeed2dbca
Require inline namespaces
2021-09-03 15:59:23 -07:00
Victor Zverovich
799bea4730
Remove FMT_HAS_GXX_CXX11
2021-09-03 15:49:40 -07:00
Victor Zverovich
60cd5ea3f2
Add support for more formattable types in ranges
2021-09-03 14:55:41 -07:00
Victor Zverovich
4fd9a00f35
Simplify ostream interface
2021-09-03 13:07:54 -07:00
Victor Zverovich
5681563898
Cleanup ostream interface
2021-09-03 10:35:19 -07:00
Victor Zverovich
20931baf1d
Disable fallback_formatter for arrays
2021-09-03 08:59:36 -07:00
Pierre-Antoine Lacaze
d58d19ba32
Fix an odr violation in ranges.h ( #2483 )
...
* Add a testcase demonstrating ODR violation in ranges.h
* Fix ODR violation in ranges.h
* Fix comments
Co-authored-by: Pierre-Antoine Lacaze <pa.lacaze@gmail.com>
2021-09-02 08:47:44 -07:00
Victor Zverovich
ee0659f8b6
Fix formatting of abstract classes via ostream
2021-09-02 08:19:12 -07:00
Roman-Koshelev
8029bf955c
Fix copy_str performance ( #2477 )
2021-09-02 07:25:26 -07:00
Max
2520f410c8
Workaround for #2478 ( #2482 )
...
_MSC_VER 1911 (Visual Studio 2017 15.3)
2021-09-02 07:13:30 -07:00
Vladislav Shchapov
ee63f5f04e
Workaround to MSVC bug ( #2474 ) ( #2476 )
2021-08-31 07:54:42 -07:00
Victor Zverovich
1aaf72fb6d
Add an example to fmt::runtime
2021-08-29 12:10:40 -07:00
Victor Zverovich
c1313c2057
Clarify that format_to[_n] do not append a terminating null
2021-08-29 12:07:35 -07:00
Victor Zverovich
71677e5204
Improve docs
2021-08-29 11:21:38 -07:00
Victor Zverovich
419ba86a91
Improve docs
2021-08-28 16:54:58 -07:00
Victor Zverovich
6a5b4d5faf
Document format_string
2021-08-28 16:51:48 -07:00
Victor Zverovich
729a44e67d
Depreate strtod and remove problematic tests
2021-08-28 09:20:36 -07:00
Victor Zverovich
74c1118964
Apply force inline
2021-08-26 21:17:35 -07:00
Victor Zverovich
596508a928
Cleanup
2021-08-26 20:56:28 -07:00
Victor Zverovich
043e3b3429
Remove static_assert from arg_mapper
2021-08-26 20:45:01 -07:00
Victor Zverovich
8b0cb944da
Fix error reporting when mixing character types
2021-08-26 18:16:05 -07:00
Alexey Ochapov
c79a3841e8
make detail::fp and detail::bigit constexpr
2021-08-26 17:16:45 -07:00
Alexey Ochapov
5888de9f34
make detail::make_checked() constexpr
2021-08-26 17:16:45 -07:00
Alexey Ochapov
04b4b69b11
make detail::bit_cast() constexpr with C++20
2021-08-26 17:16:45 -07:00
Alexey Ochapov
fd34a3d246
make detail::basic_memory_buffer constexpr with C++20
2021-08-26 17:16:45 -07:00
Victor Zverovich
6d597e39c3
Fix overload ambiguity in arg_mapper
2021-08-26 16:54:27 -07:00
Victor Zverovich
b9ce56d936
Improve comments
2021-08-26 16:30:58 -07:00
Victor Zverovich
f889e52a15
Improve error reporting
2021-08-26 15:47:44 -07:00
Victor Zverovich
34caecd6b6
Use consistent initialization style
2021-08-23 10:10:56 -07:00
sunmy2019
a44c8f651b
reimplement formatter<tuple_join_view> ( #2457 )
...
* reimplement `formatter<tuple_join_view>`
1. completely reimplement `formatter<tuple_join_view<Char, T...>, Char>`
2. Add some tests
* use FMT_THROW
2021-08-23 09:51:19 -07:00
owent
4b8bda25c0
Fix 2462
...
Signed-off-by: owent <admin@owent.net>
2021-08-23 06:31:10 -07:00
Victor Zverovich
2207ea0b36
More escaping
2021-08-22 16:54:26 -07:00
Victor Zverovich
a212ff757f
Escape invalid code points
2021-08-22 15:51:33 -07:00
Victor Zverovich
a76031e11d
check -> is_printable
2021-08-22 13:23:38 -07:00
Victor Zverovich
a7f280765c
Improve naming
2021-08-22 12:44:00 -07:00
Victor Zverovich
07d033ecb4
Fix is_printable
2021-08-22 10:37:18 -07:00
Victor Zverovich
cdb4299acb
Add Unicode support to is_printable
2021-08-22 09:11:35 -07:00
Victor Zverovich
371d8e2ee0
Escape Unicode
2021-08-22 07:55:59 -07:00
Victor Zverovich
6397095ca4
More escaping
2021-08-21 16:36:25 -07:00
Victor Zverovich
f69a572538
Don't overescape wide strings
2021-08-19 17:25:16 -07:00
Victor Zverovich
11b07a56b2
We should escape
2021-08-19 14:50:59 -07:00
Victor Zverovich
b559cfd4c0
Implement basic escaping
2021-08-19 14:12:26 -07:00
Victor Zverovich
11d49491cb
Handle global locale
2021-08-14 09:38:41 -07:00
Victor Zverovich
6ea6cf9464
Add decimal separator support to float
2021-08-14 09:16:26 -07:00