2050 Commits

Author SHA1 Message Date
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
Chris White
7b66e72e2c
Use builtin intrinsics on intel (#2450) 2021-08-11 06:22:02 -07:00
Victor Zverovich
d57b2a6525 Suppress a warning 2021-08-08 09:18:46 -07:00
Victor Zverovich
bdfbd794e3 Cleanup begin/end usage 2021-08-07 08:55:01 -07:00
Victor Zverovich
111de881fa Don't copy non-const-iterable ranges 2021-08-07 07:34:02 -07:00
Cory Quammen
f488eed101 Resolve default constructor error in Xcode 7.2.1 and 8.2.1
Fix issue that produces the error 'default initialization of an object
of const type 'const detail::buffer_size' without a user-provided
default constructor'
2021-08-06 11:17:02 -07:00
Victor Zverovich
bba0a9d962 Make flush public 2021-07-30 07:02:49 -07:00
brm
0544a2279b
Exclude fallback functions when FMT_BUILTIN_CLZ(LL) is not defined (#2434) 2021-07-25 10:37:18 -07:00
Victor Zverovich
5c222f0561 Add support for nonconst formattable types 2021-07-24 09:53:53 -07:00
Spiros Tsalikis
63fe2d5bd2 Add copy constructor for dynamic_format_arg_store, and test 2021-07-23 09:35:09 -07:00
Victor Zverovich
561834650a Improve digit count 2021-07-18 09:14:56 -07:00
Johnathan
f20f50368f
Replace throw with FMT_THROW (#2427)
Using `throw` results in compile errors with `-fno-exceptions`. gcc seems fine with it, but arm-gcc and clang would complain.
2021-07-18 07:08:24 -07:00
Victor Zverovich
e41ac1f875 Don't use deprecated API in docs 2021-07-10 13:42:51 -07:00
Victor Zverovich
8465869d7b Move ignore_unused to detail 2021-07-09 08:24:11 -07:00
Victor Zverovich
20e4ef8b4c Pass significand_size by value 2021-07-05 08:51:43 -07:00
Victor Zverovich
c4a3c2342a Refactor locale handling 2021-07-05 08:25:12 -07:00
Benoît Lormeau
02ad5e11da
Add faint, blink, reverse and conceal to the emphases (#2394) 2021-07-02 20:03:55 -07:00
Victor Zverovich
cfc05e05f0 Bump version 2021-07-02 14:43:31 -07:00
Victor Zverovich
e461f3dbbe Minor consitency and comment tweaks 2021-07-02 13:56:37 -07:00
Mattias Ljungström
54014e42e3
silence warning C4100 on MSVC 2019 when exceptions are disabled (#2397) 2021-07-02 13:51:49 -07:00
Victor Zverovich
3e7a29cc92 Workaround clang/gcc incompatibility 2021-07-02 13:29:22 -07:00
Victor Zverovich
1d7384530e Add missing presentation type checks for std::string (#2402) 2021-07-02 07:51:04 -07:00
Jonathan Emmett
889bbf27a2
Fix missing std::get overload in MSVC (#2407)
This replaces the `std::get` call with an unqualified equivalent to allow
it to be treated as a dependent call.

ranges.h needs std::get overloads from `<tuple>` but does not directly
include it. This causes compilation failures in MSVC with /permissive-.
On other platforms `<tuple>` is included as a dependency from other headers
(specifically from `<memory>`), but there is no such implicit dependency in
MSVC's STL.

Fixes #2401
2021-07-01 10:55:46 -07:00
Victor Zverovich
5f8473914c Remove outdated apidoc 2021-07-01 07:56:53 -07:00
Victor Zverovich
785908ee37 Fix warnings 2021-06-30 06:42:29 -07:00
Greg Sjaardema
fbb70eec5c
suppress unused variable warnings (#2381)
* suppress unused variable warnings

An arguably better method for suppressing unused variable warnings.   The `(void)var` method does not work on many intel compiilers.
This is from Herb Sutter's blog post https://herbsutter.com/2009/10/18/mailbag-shutting-up-compiler-warnings/

* Format to eliminate long lines

* Run clang-format
2021-06-30 06:33:30 -07:00
Javier Honduvilla Coto
002bb759ff Remove unneeded num_result_bigits decrement
For what I see this seems unused?
2021-06-29 06:23:02 -07:00