2876 Commits

Author SHA1 Message Date
Victor Zverovich
0c06c81da8 Deprecated implicit conversion of enums to ints for consistency with scoped enums 2022-07-03 09:02:22 -07:00
Vladislav Shchapov
99bb5b1d17 Fix std::variant, std::filesystem::path tests on GCC-8, Clang-7,8.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-07-02 08:34:52 -07:00
jehelset
6a775e9560
Add support for 'std::variant' in C++17 (#2941)
Add support for 'std::variant' in C++17.

For C++17, if all the alternatives of a variant are formattable
the variant is now also formattable. In addition 'std::monostate'
is now formattable.

Moves implementation into 'std.h', and tests into 'std-test.cc'.

Avoid fold-expression since MSVC was crashing.

Add section for 'fmt/std.h' in API-docs.
2022-06-26 07:28:01 -07:00
Victor Zverovich
9cb02aaaad Fix UDLs 2022-06-25 08:52:10 -07:00
Victor Zverovich
e6d478f8e8 Update changelog and docs 2022-06-25 08:33:57 -07:00
Victor Zverovich
2d931b1497 Add fmt::streamed 2022-06-24 09:26:24 -07:00
Jonathan W
e8bd2a804d
Fix enable_ifs for map formatter (#2944) 2022-06-23 08:24:11 -07:00
Victor Zverovich
69a20db081 Update changelog and fix an apidoc comment 2022-06-22 08:32:46 -07:00
jehelset
5682338891
Fix is_formattable for tuple-like types. (#2940) 2022-06-19 08:25:58 -07:00
Victor Zverovich
eaa8efb950 Fix ofstream handling in msvc 2022-06-16 15:02:33 -07:00
Juraj
8e47cfd1cd fix -Wsign-conversion warning 2022-06-11 12:31:33 -07:00
Victor Zverovich
b135f1c014 Refactor handling of argument types 2022-06-09 17:03:33 -07:00
Victor Zverovich
f61a1e8132 Add format_arg_types 2022-06-09 15:50:30 -07:00
Mattes D
48b7e3dafb Added a FMT_STRING wrapper for system_error() call.
This enables the use of FMT_ENFORCE_COMPILE_STRING on MSVC 2019.
2022-06-07 07:00:57 -07:00
Victor Zverovich
4bb3af7a6b Improve compile-time checks 2022-06-05 13:58:04 -07:00
Vladislav Shchapov
d02c582b96 Fix 'duplicate symbol' error.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-06-05 07:17:25 -07:00
Vladislav Shchapov
b59d8c3a23 Make std::filesystem::path formatter utf-8 compatible.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-06-04 10:10:21 -07:00
Victor Zverovich
9d60395953 Fix compilation on ppc64 2022-05-31 13:53:15 -07:00
Victor Zverovich
a2681aabcb Debug ppc failure 2022-05-31 11:30:22 -07:00
Victor Zverovich
798d09bb70 Debug ppc failure 2022-05-30 13:06:34 -07:00
Victor Zverovich
8c7cf51395 Cleanup 2022-05-30 08:21:01 -07:00
Victor Zverovich
cdfacb4345 Cleanup parse_format_string 2022-05-30 07:30:11 -07:00
Victor Zverovich
926ddd0631 Move compile string to detail 2022-05-30 07:06:36 -07:00
Victor Zverovich
cb682f36f4 Move to_string_view to detail 2022-05-29 22:51:31 -07:00
Victor Zverovich
156744ad47 Simplify fmt::runtime 2022-05-29 21:18:52 -07:00
Victor Zverovich
d9c7166cf0 bi_iterator -> base 2022-05-29 21:01:57 -07:00
Victor Zverovich
fe6eb792d5 Cleanup check_format_string 2022-05-29 19:01:06 -07:00
Victor Zverovich
054b1d9808 Remove unused include 2022-05-29 18:24:10 -07:00
Victor Zverovich
e927149f8e Cleanup macros 2022-05-29 17:23:02 -07:00
Victor Zverovich
1761e2666a Remove FMT_CONSTEXPR_DECL 2022-05-29 16:42:58 -07:00
Victor Zverovich
d6b568a6cc Cleanup string_view checks 2022-05-29 16:30:39 -07:00
Victor Zverovich
c83a5d42bb FMT_MSC_VER -> FMT_MSC_VERSION 2022-05-29 15:39:08 -07:00
Victor Zverovich
27cd68c301 Cleanup macros 2022-05-29 14:45:59 -07:00
Victor Zverovich
08be4abb30 Remove FMT_NVCOMPILER_VERSION 2022-05-29 13:54:31 -07:00
Victor Zverovich
661b192545 Remove FMT_HEADER_ONLY_CONSTEXPR20 2022-05-29 13:22:45 -07:00
Victor Zverovich
d1026fa5d2 Remove extern format_float 2022-05-29 13:11:19 -07:00
Victor Zverovich
7e63b600b6 Make to_string work with __float128 2022-05-29 12:23:57 -07:00
Victor Zverovich
c2fcdc54e2 Move format_float to format.h for __float128 2022-05-29 11:30:33 -07:00
Victor Zverovich
2b9037a190 Move basic_fp to format.h for compile-time formatting 2022-05-29 07:32:52 -07:00
Victor Zverovich
542785ccbf Get rid of detail::bits 2022-05-29 07:10:36 -07:00
Vladislav Shchapov
65dd2ea52c Use write_escaped_string to std::filesystem::path.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-05-28 07:48:02 -07:00
Vladislav Shchapov
9860f67cde Improve xchar support for std formatters.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-05-28 07:48:02 -07:00
Vladislav Shchapov
03b1b2838e Improve std::filesystem::path formatter.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-05-28 07:48:02 -07:00
Victor Zverovich
4f9311e689 Fix definition of error_handler::on_error 2022-05-27 10:49:19 -07:00
Ivan Shynkarenka
652fea45a9 Visual Studio 2022: fmt/format.h(1526,27): warning C4127: conditional expression is constant #2908 2022-05-27 10:38:13 -07:00
Vladislav Shchapov
1f9eae7e31 Add xchar support for write_escaped_string.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-05-27 08:36:38 -07:00
Victor Zverovich
ce246aaf74 Remove deprecated APIs 2022-05-22 07:10:09 -07:00
Victor Zverovich
edeb3d8091 Remove deprecated APIs 2022-05-21 19:57:38 -07:00
Victor Zverovich
f5cdf7cb04 Simplify snprintf_float 2022-05-21 12:34:21 -07:00
Victor Zverovich
440512f08d Remove deprecated APIs 2022-05-21 12:20:31 -07:00
Victor Zverovich
621eb80bbb Remove deprecated APIs 2022-05-21 11:34:07 -07:00
Victor Zverovich
5c7d315ded Remove locale.h 2022-05-21 08:19:09 -07:00
Victor Zverovich
c6324009ba Add initial double-double support 2022-05-21 07:32:54 -07:00
frithrah
147e8ca580
Fix Windows max mix-up (#2903) 2022-05-18 16:35:26 -07:00
Victor Zverovich
6bf039d750 Add std:🧵:id formatter 2022-05-17 16:37:19 -07:00
Victor Zverovich
9730fb0156 Fix path formatter 2022-05-17 14:29:49 -07:00
Victor Zverovich
f0903ad9df Add a path formatter 2022-05-16 17:32:25 -07:00
Ivan Shynkarenka
3e28dc021c
VS2022 17.2: C4189: 'zero': local variable is initialized but not referenced #2891 (#2892)
VS2022 17.2: C4189: 'zero': local variable is initialized but not referenced #2891

Co-authored-by: Ivan Shynkarenka <Ivan_Shynkarenka@epam.com>
2022-05-13 07:04:34 -07:00
Victor Zverovich
f6f920a1a8 Tweak a comment and apply clang-format 2022-05-11 14:40:26 -07:00
Victor Zverovich
ae963e444f Implement constexpr isfinite to avoid producing NaN 2022-05-11 08:43:22 -07:00
Victor Zverovich
358f5a7e50 Make precision computation consistent with width 2022-05-11 06:34:51 -07:00
Sean McBride
f63afd161f
Fixed all clang -Wsigned-enum-bitfield warnings (#2882)
Made enums involved in bitfields unsigned by specifying their underlying type as unsigned char.

Due to a bug, when specifying an underlying type, gcc < 9.3 warns about bitfields not being big enough to hold the enum, even though they are. So keep the plain enum for old gcc.

An example of the bug is here:

https://godbolt.org/z/58aEv8zEq
2022-05-09 11:03:51 -07:00
Victor Zverovich
7e4ad40171 Add initial support for double-double 2022-04-24 07:43:02 -07:00
Victor Zverovich
5d804ee7fe Fix handling of subnormals in exotic FP 2022-04-17 08:56:35 -07:00
Victor Zverovich
86e27ccb41 Suppress a warning 2022-04-12 09:30:29 -07:00
Victor Zverovich
192f79aaae Fix handling of locale separators in FP formatting 2022-04-12 08:00:17 -07:00
Victor Zverovich
395cf0f03e Fix detection of unformattable pointers 2022-04-12 06:45:46 -07:00
Victor Zverovich
fc429d18b6 Avoid overhead on sensible platforms 2022-04-11 16:52:34 -07:00
Victor Zverovich
ce7ecdb7af Replace conditional compilation with SFINAE 2022-04-11 12:16:05 -07:00
Victor Zverovich
8751a03a04 Fix Unicode handling when writing to an ostream 2022-04-10 09:46:01 -07:00
Victor Zverovich
f607e3e970 Add __float128 support 2022-04-03 12:58:06 -07:00
Victor Zverovich
686de58886 Implement 128-bit constant mul in bigint 2022-04-03 07:24:18 -07:00
Victor Zverovich
02eb215f2f Replace uint128_wrapper with uint128_fallback 2022-04-02 18:01:41 -07:00
Victor Zverovich
b4dc7a1d34 Add 128-bit operations to bigint 2022-04-02 09:29:13 -07:00
Victor Zverovich
ef54f9aa38 Suppress -Wfloat-equal 2022-04-01 12:18:22 -07:00
Jean-Michaël Celerier
288c3b928b Remove dead code in ostream.h format_value 2022-03-29 10:21:19 -07:00
Victor Zverovich
96930161f9 Implement 128-bit operator+= for uint128_fallback 2022-03-27 08:07:54 -07:00
Victor Zverovich
b41890c1e5 Make arg_mapper SFINAE-friendly again 2022-03-27 07:10:15 -07:00
Victor Zverovich
e2408f37c8 Check if formatter is not defined if there is format_as 2022-03-26 09:44:49 -07:00
Victor Zverovich
db5b8993ac Fix formatting of std::byte via format_as 2022-03-26 09:01:30 -07:00
Sean McBride
5379063b54 Fixed clang -Wreserved-identifier warings
Created FMT_UNCHECKED_TYPE that resolves to special identifier _Unchecked_type for Microsoft, but to a dummy string otherwise. Using
_Unchecked_type is invalid because underscore + uppercase is a reserved identifier.
2022-03-24 07:33:43 -07:00
Victor Zverovich
17dda58391 constexpr -> const for portability 2022-03-23 21:14:22 -07:00
Victor Zverovich
3c4273dd09 Simplify UDL 2022-03-22 17:43:37 -07:00
Victor Zverovich
44abd1f483 Update signatures in docs and ostream.h 2022-03-22 16:05:30 -07:00
Victor Zverovich
db745986f2 Workaround broken std::numeric_limits 2022-03-20 08:50:52 -07:00
Victor Zverovich
8271e43e5e Improve __float128 support and use constexpr 2022-03-20 07:20:41 -07:00
Victor Zverovich
3f9b7433a3 Improve __float128 support 2022-03-19 09:44:14 -07:00
Victor Zverovich
71778e8b90 Specialize float_info for __float128 2022-03-19 08:39:16 -07:00
Victor Zverovich
f024565c3f Improve exponent handling in Dragon 2022-03-19 08:23:32 -07:00
Victor Zverovich
e7f31f5cdb Cleanup format_dragon 2022-03-18 16:03:19 -07:00
Victor Zverovich
3c61799fbf Cleanup fuzzing mode 2022-03-18 12:01:52 -07:00
Victor Zverovich
4e39e13085 Remove xchar.h include from ostream.h 2022-03-18 10:53:15 -07:00
timsong-cpp
ac0d9d5fe2 Issue #2816: also strip named-arg for the fallback formatter 2022-03-18 10:11:14 -07:00
timsong-cpp
4ad90578f7 Fix #2818: diagnose unformattable arguments in unpacked case 2022-03-18 10:11:14 -07:00
timsong-cpp
17ba99c1d2 Fix #2817: add compile-time checking to ostream overloads of fmt::print 2022-03-18 10:11:14 -07:00
timsong-cpp
3d19be282a Fix #2816: strip named argument wrappers for compile-time checking 2022-03-18 10:11:14 -07:00
Victor Zverovich
c076a54a4d Move snprintf_float to format.h 2022-03-18 08:31:31 -07:00
Victor Zverovich
0419d23882 Add FMT_USE_FLOAT128 2022-03-18 07:43:51 -07:00
cre
69396347af
Update color.h (#2815)
fixed typo in comment
2022-03-17 10:55:02 -07:00
Victor Zverovich
bc654faf82 Add is_floating_point that works with __float128 2022-03-15 08:26:05 -07:00
Victor Zverovich
26bffce66d Simplify basic_memory_buffer 2022-03-15 07:15:52 -07:00
Victor Zverovich
ed18ca3eae Implement isnan 2022-03-14 20:37:46 -07:00
Victor Zverovich
a204b8dde7 Add initial __float128 support 2022-03-14 19:34:41 -07:00
Victor Zverovich
f2543b0a98 Add initial support for 128-bit floats 2022-03-14 14:00:15 -07:00
Victor Zverovich
72f487562d Simplify float_info 2022-03-14 13:37:03 -07:00
Victor Zverovich
f91f61cd13 Reuse num_significand_bits 2022-03-14 11:34:24 -07:00
Victor Zverovich
9a1beab574 Workaround Windows API garbage 2022-03-11 17:31:39 -08:00
Riccardo Brugo
a8fe8becf4
Fix compilation error for ranges with ADL begin/end (#2807)
* Use `range_begin`/`end` to get formatted range iterators

* Add test for adl `begin`/`end`

* Apply clang-format

* Simplify tests
2022-03-11 11:36:39 -08:00
Victor Zverovich
f6bcb25e16 Remove extra dot 2022-03-10 16:26:17 -08:00
Victor Zverovich
b4a4189d0c Fix handling of implicit bit 2022-03-10 15:34:56 -08:00
Victor Zverovich
0b7c045a2f Simplify _cf 2022-03-08 15:31:51 -08:00
rtobar
dcfbe4a77a
Document output_file default behavior correctly (#2803)
The documentation for output_file incorrectly says that opening an output file happens with `file::WRONLY | file::CREATE` by default, but this includes `file::TRUNC` is also included since 119f7dc3d.
2022-03-08 10:02:22 -08:00
Riccardo Brugo
8c9bc070f5
Implement styled arguments (#2793)
* Implement styled arguments

* Inherit from formatter<Arg> to get the underlying `parse` and `format`

* Move styled_arg definition into the previous detail block

* Change styled_arg ctor parameters names to avoid shadowing members

* Move const before auto

* Remove redundant constructor for styled_arg

* Use the iterator instead of the buffer in styled_arg::format

* Remove unnecessary `styled` overloads

* Remove defaulted text_style parameter in styled function
2022-03-08 09:50:14 -08:00
Greg Sjaardema
5bc39d363a
Eliminate intel compiler warnings (#2802)
The intel compiler emits  `declaration hides parameter "loc" ..."  and similar warnings for "out" and "args" since the function arguments are the same as other visible symbols.  This is for intel-2021.3.0 20210609.
2022-03-07 15:34:33 -08:00
Boris Dalstein
e3d688e79a
Fix warning C4251: class fmt::v8::file needs to have dll-interface (#2797)
* Fix warning C4251: class fmt::v8::file needs to have dll-interface

* Add CMake target dependency between test-main and fmt
2022-03-07 12:09:48 -08:00
Barry Revzin
0cef1f819e
Fixing formatting of certain kinds of ranges of ranges. (#2787)
* Fixing formatting of certain kinds of ranges of ranges.

* Renaming const_range to range_type.
2022-03-04 16:21:00 -08:00
Victor Zverovich
86477f7ecc Fix size computation 2022-02-22 17:21:07 -08:00
Björn Schäpers
0742606f19
Fix Conversion Warning (#2782)
With -Wconversion and 32 Bit I get a warning here with unsigned long
long converted to unsigned long.
2022-02-22 08:16:36 -08:00
Victor Zverovich
1ba69fb5a1 Remove snprintf FP fallback 2022-02-21 08:01:55 -08:00
Victor Zverovich
ea6f0bf0e5 Minor cleanup 2022-02-21 07:29:36 -08:00
Ivan Shynkarenka
1a18a2f3dd
Fixing "C4127: conditional expression is constant" Visual Studio 2022 warning in pedantic mode (#2783) 2022-02-21 07:26:16 -08:00
Victor Zverovich
4fcacea354 Parameterized fp on significand type 2022-02-21 07:25:13 -08:00
Victor Zverovich
cf940ae82e Simplify to_decimal 2022-02-20 19:38:02 -08:00
Juraj
70dc3de053 Update format.h
To prevent the following compiler message:
[...]/include/fmt/format.h:392:20: warning: conversion to 'long unsigned int' from 'int' may change the sign of the result [-Wsign-conversion]
  392 |     unsigned value[size];
      |                    ^~~~
2022-02-20 11:38:03 -08:00
Victor Zverovich
cbc59ca893 Clear moved from memory buffer 2022-02-20 08:12:59 -08:00
Victor Zverovich
aad44f2839 Add fmt::enums::format_as 2022-02-19 08:03:42 -08:00
Victor Zverovich
1319719a5e Add underlying_t 2022-02-19 07:57:43 -08:00
Victor Zverovich
af5d8004fc Limit Dragonbox to supported FP formats 2022-02-19 07:14:18 -08:00
Victor Zverovich
7b96420961 Remove unused include 2022-02-18 18:56:51 -08:00
Victor Zverovich
a0b43bfae2 Add support for 96-bit long double 2022-02-18 18:01:49 -08:00
Victor Zverovich
2c8cd2db34 Fix handling of zero precision 2022-02-18 12:38:30 -08:00
Victor Zverovich
b6d56170fc Remove unnecessary inline 2022-02-18 07:41:55 -08:00
Victor Zverovich
05432e570e Use consistent indentation 2022-02-18 07:38:42 -08:00
Victor Zverovich
47da218cc3 Remove uintptr_fallback 2022-02-18 07:03:33 -08:00
Victor Zverovich
4ddab8901c Merge accumulator into int128_fallback 2022-02-18 06:17:28 -08:00
Victor Zverovich
d38f72aff2 Refactor fallback ints 2022-02-17 20:24:42 -08:00
Victor Zverovich
15c2a3bacc int128_t -> int128_opt 2022-02-17 20:03:25 -08:00
Victor Zverovich
532a69a639 Fix handling of 96-bit long double with -m32 2022-02-17 15:51:59 -08:00
Victor Zverovich
ce93a66dfb Implement a fallback uint128_t 2022-02-17 07:37:09 -08:00
Victor Zverovich
6a13464059 Include 128-bit with other signed integers in specifier check 2022-02-16 16:57:06 -08:00
Greg Sjaardema
70de324aa8
Apply 2746 fix for NVidia compiler also (#2770) 2022-02-16 12:04:16 -08:00
Victor Zverovich
a1ea3e015b Move built-in formatter specialization to core 2022-02-16 07:37:00 -08:00
Victor Zverovich
161059dd98 Add support for extended precision FP 2022-02-16 06:07:04 -08:00
Victor Zverovich
c4c6b42de7 Bump version 2022-02-15 13:36:59 -08:00
Victor Zverovich
2b6f7fc7a3 Add partial support for extended precision FP 2022-02-15 07:22:41 -08:00
Vladislav Shchapov
0a24a0714e
Clz builtin may be not constexpr (Issue #2761) (#2762) 2022-02-14 18:19:06 -08:00
jk-jeon
5594edaf67
Address https://github.com/fmtlib/fmt/issues/2763 (#2765) 2022-02-13 20:14:28 -08:00
Vladislav Shchapov
10e3b83a75
Replace `make_args_checked with make_format_args` (#2760)
* Replace make_args_checked to make_format_args

* Deprecate legacy make_args_checked
2022-02-13 20:13:35 -08:00
Junekey Jeon
083510f0f0 Add FMT_CONSTEXPR to rotr instead 2022-02-13 06:15:17 -08:00
Junekey Jeon
dba99bc860 Revert adding constexpr to rotr to satisfy C++11 compilers 2022-02-13 06:15:17 -08:00
Junekey Jeon
c04af4bfc7 Simplify remove_trailing_zeros 2022-02-13 06:15:17 -08:00
Junekey Jeon
b348caa9e9 Remove some C-style casts for consistency 2022-02-13 06:15:17 -08:00
Junekey Jeon
c8bd1e646e Simplify remove_trailing_zeros 2022-02-13 06:15:17 -08:00
Junekey Jeon
9b23e9dcb8 Fix wrong comment/refer to a correct reference 2022-02-13 06:15:17 -08:00
Junekey Jeon
69f2c550ab Remove std:: infront of uint32_t/64_t & add constexpr to rotr 2022-02-13 06:15:17 -08:00
Junekey Jeon
9b62310f03 Fix some conversion issues 2022-02-13 06:15:17 -08:00
Junekey Jeon
08d12f31d1 Fix typo 2022-02-13 06:15:17 -08:00
Junekey Jeon
dbddb1d066 Remove literal separator to satisfy some compilers 2022-02-13 06:15:17 -08:00
Junekey Jeon
7dbe3dcded Recover log10_2_significand 2022-02-13 06:15:17 -08:00
Junekey Jeon
10642e6082 Optimize remove_trailing_zeros 2022-02-13 06:15:17 -08:00
Junekey Jeon
7b4323e1e0 Add rotr 2022-02-13 06:15:17 -08:00
Junekey Jeon
f1bd6f7731 Check r < deltai first, because that is the major branch chosen for short inputs 2022-02-13 06:15:17 -08:00
Junekey Jeon
5d8eb6a1a0 Reflect the new paper
- Change constants appearing in log & division computations
  - Rename beta_minus_1 to beta
2022-02-13 06:15:17 -08:00
Victor Zverovich
8e2e4d4034 Suppress a gcc warning 2022-02-12 09:26:48 -08:00
Vladislav Shchapov
a44716f58e
Workaround to Intel compiler (#2758) 2022-02-11 06:25:42 -08:00
Vladislav Shchapov
c71b070168
Add missing const qualifier (#2755) 2022-02-10 10:51:32 -08:00
Victor Zverovich
afbcf1e8ea Remove legacy C locale wrapper 2022-02-05 12:37:21 -08:00
Victor Zverovich
90325d0970 Fix stored type detection 2022-02-05 10:44:34 -08:00
Victor Zverovich
e2ba01fcb0 Fix overload ambiguity in print 2022-02-05 08:35:19 -08:00
Victor Zverovich
17b362f78c Simplify ostream opt-in API 2022-02-04 18:33:59 -08:00
Victor Zverovich
f055ebbd25 Make ostream operators opt in to reduce the risk of ODR violations 2022-02-04 15:06:45 -08:00
Victor Zverovich
8a21e328b8 Remove problematic constructibility check 2022-02-04 12:20:02 -08:00
Victor Zverovich
31e743d06e Don't use ostream for types convertible to string_view 2022-02-04 11:00:00 -08:00
Victor Zverovich
35c0286cd8 Simplify byte handling 2022-02-02 16:13:24 -08:00
Victor Zverovich
c7173a36a1 Drop :: and fix formatting 2022-02-02 07:00:33 -08:00
Charlie Barto
3e8372b96e
qualify unqualified calls to format in compile.h (#2742) 2022-02-01 18:41:19 -08:00
Barry Revzin
a34a97cc1d
Supporting ? as a string presentation type (#2674)
* Supporting ? as a string presentation type.

* Supporting ? as a char presentation type.

* Adding iterator_category to counting_iterator.
2022-01-30 08:55:28 -08:00
Victor Zverovich
1557ab7644 Add format_as for enums 2022-01-28 06:38:02 -08:00
Federico
b00a1eac75
Fixes NVIDIA HPC compiler and Intel ICC compatibility (#2732)
* Fixes NVIDIA HPC compiler and Intel ICC compatibility

* Fixes NVIDIA HPC compiler and Intel ICC compatibility

* Rename FMT_NVHPC_VERSION to FMT_NVCOMPILER_VERSION

Co-authored-by: Federico Busato <fbusato@nvidia.com>
2022-01-26 15:53:04 -08:00
Victor Zverovich
f7a809be6e Clarify the choice of magic numbers and compute the most magic one
https://github.com/fmtlib/fmt/pull/2713#discussion_r788349826
2022-01-23 08:58:58 -08:00
Victor Zverovich
09fde7f4b8 Add fmt::underlying for enum classes 2022-01-22 08:06:22 -08:00
Victor Zverovich
0014024a2c Don't rely on transitive includes 2022-01-21 15:03:28 -08:00
Victor Zverovich
c28500556a FMT_NOEXCEPT -> noexcept 2022-01-20 16:55:47 -08:00
Junekey Jeon
6240d02011 Improve comments 2022-01-19 17:03:44 -08:00
Junekey Jeon
925b744ae8 Improve comments 2022-01-19 17:03:44 -08:00
Junekey Jeon
22b14ff252 Simplify cache recovery 2022-01-19 17:03:44 -08:00
Junekey Jeon
3dc26b44d3 Make a fallback path more compiler-friendly 2022-01-19 17:03:44 -08:00
Junekey Jeon
2e4038bf51 Simplify lines with __builtin_addcll and friends 2022-01-19 17:03:44 -08:00
Junekey Jeon
76336b4f63 Replace noexcept with FMT_NOEXCEPT 2022-01-19 17:03:44 -08:00
Junekey Jeon
9181983483 Fix syntax errors 2022-01-19 17:03:44 -08:00
Junekey Jeon
74097a149b Remove now-unused stuffs 2022-01-19 17:03:44 -08:00
Junekey Jeon
21a1c53381 Fix typo 2022-01-19 17:03:44 -08:00
Junekey Jeon
04eea0f0a8 Remove now-unused stuffs 2022-01-19 17:03:44 -08:00
Junekey Jeon
35a468ed38 Simplify integer checks 2022-01-19 17:03:44 -08:00
Junekey Jeon
1882a7a2c1 Replace Dragonbox cache which allows simpler cache recovery & integer checks 2022-01-19 17:03:44 -08:00
Junekey Jeon
f4dd1b1b8b Simplify Dragonbox Step 3. 2022-01-19 17:03:44 -08:00
Junekey Jeon
70561ed13e Minimize the usage of built-in 128-bit ints
It usually generates slower code than manual handling.
2022-01-19 17:03:44 -08:00
Ivan Volnov
cdf1a3b530
Fix codecvt warning (#2408) (#2725) 2022-01-19 10:26:09 -08:00
Tobias Hellmann
b8b037e930
Fix -Wconversion warning (#2724)
* - try fixing the warning "chrono.h:1217:37: warning: conversion from 'std::make_unsigned<long long int>::type' {aka 'long long unsigned int'} to 'size_t' {aka 'unsigned int'} may change value [-Wconversion]" by casting int to size_t (occurs when cross-compiling to Raspberry Pi ARMv7)

* - remove call to to_unsigned() because using static_cast<size_t> is enough
2022-01-19 06:31:33 -08:00
matrackif
5985f0a7d2
Fix overflow for chrono durations (#2722) 2022-01-17 12:14:59 -08:00
Victor Zverovich
8f8a1a02d5 Fix handling of formattable types implicitly convertible to pointers 2022-01-14 13:42:01 -08:00
Vladislav Shchapov
b02e5af52c
fmt::join support FMT_COMPILE (#2720) 2022-01-14 09:58:49 -08:00
Victor Zverovich
4fe6129d6c Fix FMT_NOEXCEPT definition 2022-01-13 10:20:32 -08:00
Victor Zverovich
7c12118c19 Deprecate buffered_file::fileno 2022-01-12 10:54:44 -08:00
Victor Zverovich
2a09d468da Use noexcept unconditionally 2022-01-12 09:42:29 -08:00
Victor Zverovich
a126b4d888 Check if right shift is arithmetic 2022-01-11 08:23:30 -08:00
Victor Zverovich
9ff91b18cd Simplify write_fractional_seconds 2022-01-09 15:08:46 -08:00
Victor Zverovich
d9f045fba1 Fix a UB in chrono 2022-01-09 14:06:13 -08:00
Victor Zverovich
3c98f1a4cd Comment style 2022-01-08 09:52:39 -08:00
Barry Revzin
6e0f1399d7
Supporting nested format specs for ranges. (#2673)
* Supporting nested format specs for ranges.

* I dedicate this commit to Eric Niebler.

* clang-format

* PR comments.

* throw -> FMT_THROW

* Need to map every element too.

* Clarifying uncvref_type

* Trying to add a workaround for MSVC.
2022-01-08 09:48:26 -08:00
Alex Guteniev
0102101acc
Make colored print handle UTF-8 (#2701)
* Fix #2681 - Make detail::print handle UTF-8

* Okay, let's do this Windows-only

* drop extra \0

* yay we can throw!
2022-01-06 16:10:53 -08:00
Victor Zverovich
88ec4e7061 Bump version 2022-01-06 12:32:43 -08:00
Victor Zverovich
739055ae7b Fix apidocs 2022-01-06 11:06:39 -08:00
Victor Zverovich
dbbd711f46 Suppress a warning 2022-01-05 09:41:35 -08:00
Victor Zverovich
98cbb6a43c Fix ABI compatiblity issue 2022-01-05 08:08:38 -08:00
Vladislav Shchapov
214cf13f17
Fix endianness bug in write_digit2_separated (#2699)
* Fix endianness bug in write_digit2_separated

* Move endianness check to compile time if it possible

* Turn 8 into a constant
2022-01-04 14:23:42 -08:00
Julian Rüth
17a5c808da
Restore FMT_API on error_handler::on_error() (#2696)
this fixes a breaking ABI change that was introduce in the upgrade from
8.0.1 to 8.1.0.

Fixes #2695.
2022-01-04 10:53:44 -08:00
Richard Berger
fc1783fcc6
Avoid undefined symbols with mingw-w64 (#2692)
Fixes issue #2691
2022-01-03 15:29:29 -08:00
Victor Zverovich
1b193e7b37 Deprecate more 2022-01-03 11:13:09 -08:00
Victor Zverovich
64dc8fbada Bump version 2022-01-02 08:34:01 -08:00
Victor Zverovich
89c6ed12bf Clarify in comments (for now) deprecated map functions 2022-01-01 09:29:50 -08:00
Björn Schäpers
e462da828d
Add some noexcept (#2684)
I got warnings from -Wnoexcept, fixed them.
2022-01-01 08:44:00 -08:00
Victor Zverovich
bb69201578 Fix tuple join 2021-12-29 14:46:45 -08:00
Victor Zverovich
4fac7daaef Cleanup bit_cast 2021-12-29 12:14:51 -08:00
Victor Zverovich
9c0c1bcdbd Simplify tuple formatting 2021-12-29 08:03:12 -08:00
Victor Zverovich
796662a612 Escape range items convertible to std::string_view 2021-12-27 09:38:06 -08:00
Vladislav Shchapov
3bbf2c673c Fix throw with exceptions disabled 2021-12-26 16:28:41 -08:00
Victor Zverovich
eab2ea9fc2 Replace an assert with an exception 2021-12-26 07:05:45 -08:00
Vladislav Shchapov
04111dd1e4
Fix issue #2670 (#2671) 2021-12-23 12:38:48 -08:00
lucpelletier
7812813a32
Don't explicitly delete copy ctor of dynamic_format_arg_store (#2664)
* Don't explicitly delete copy ctor of dynamic_format_arg_store

Explicitly deleting the copy ctor causes the move constructor to not be
implicitly generated. This behaviour is different than what was in
v8.0.1 and causes code that relied on the move ctor of
dynamic_format_arg_store to break.

* Add test for dynamic_format_arg_store's move ctor

* include <memory>, don't use make_unique
2021-12-23 11:34:16 -08:00
Victor Zverovich
784e2a7b42 Fix an overflow when formatting very large durations 2021-12-23 10:34:32 -08:00
Stefan Weil
fc2a376d8e Remove two expressions which had no effect (reported by LGTM)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-22 16:29:16 -08:00
Victor Zverovich
eaddd1e3cd Fix handling of byte 2021-12-19 06:46:24 -08:00
Victor Zverovich
2d44577586 Try fixing byte regression 2021-12-18 08:51:21 -08:00
Alexey Ochapov
e46392ea2c deprecate _format UDL in code using FMT_DEPRECATED 2021-12-18 08:33:20 -08:00
Victor Zverovich
c882790a2e Add a set formatter 2021-12-18 07:35:40 -08:00
Victor Zverovich
121002d700 Add a map formatter 2021-12-18 07:12:53 -08:00
Victor Zverovich
be51ee1ceb Disable broken copy ctor of dynamic_format_arg_store 2021-12-17 17:18:18 -08:00
Victor Zverovich
659de779e6 Fix a UB in parse_format_specs when begin is null 2021-12-17 16:51:24 -08:00
Alexey Ochapov
ef72b471fc
enable named arguments check in compile-time checks (#2649)
works only if all named arguments are UDL-based
2021-12-17 15:53:05 -08:00
Alexey Ochapov
82246b8766
fix throw with exceptions disabled (#2647) 2021-12-17 13:44:36 -08:00
Marek Kurdej
3a951a66cb
Avoid qualifying by inline namespace. Fixes #2642. (#2643) 2021-12-10 08:28:25 -08:00
Marek Kurdej
e0136fc8bd
Qualify calls to make_wformat_args. Fixes #2639. (#2641) 2021-12-10 06:36:42 -08:00
Victor Zverovich
ac1b5f3da5 Refactor problematic trailing returns in arg_mapper 2021-12-09 18:08:30 -08:00
Victor Zverovich
fd62fba985 Don't convert scoped enums to integers 2021-12-09 12:09:33 -08:00
Victor Zverovich
c652f8243a Make header guard consistent with header name 2021-12-09 10:49:47 -08:00
Victor Zverovich
a9c7b9b8f7 Clarify that _format is deprecated 2021-12-09 10:34:27 -08:00
Victor Zverovich
e4f0564aa6 Disable is_streamable for string[_view] 2021-12-09 10:02:18 -08:00
Victor Zverovich
91533d3c33 Minor tweaks to chrono subsecond formatting 2021-12-09 06:55:31 -08:00
matrackif
0bbc9708f9
Implement c++20 std::chrono::duration subsecond formatting (#2623)
* Add support for subsecond printing for std::chrono::duration according to the c++20 standard

* Remove assert test that overflows intmax_t

* * Hopefully fix int64_t to int32_t conversion errors.
* Allow proper Duration::rep type to propagate via template argument deduction

* * Hopefully fix int64_t to int32_t conversion errors.
* Allow proper Duration::rep type to propagate via template argument deduction

* Fix sign conversion (-Wsign-conversion) warning treated as error in num_digits()

* Format chrono.h with clang-format

* Remove extra forward slash in doxygen style comment

Co-authored-by: Victor Zverovich <victor.zverovich@gmail.com>

* Apply all suggestions from GitHub, except for replacing the utility subsecond_helper class with a function

* * Move logic of handling subseconds from utility class to function with name write_fractional_seconds()
* Revert write(Rep value, int width) function to previous state

* Fix -Wshadow warning

* Remove unsued get_subseconds() function, its logic has been moved to write_fractional_seconds()

* Change comment from lowercase int to uppercase Int

* Simplify test check

* Integrate suggested changes

* Remove static from detail functions, they are no longer member functions of a class and static is unnecessary.
* Change comment from "amount" to "number"

Co-authored-by: Victor Zverovich <victor.zverovich@gmail.com>
2021-12-09 06:45:13 -08:00
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
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
Marek Kurdej
a3f762c5aa [doc] Minor: fix `code`. 2021-06-29 06:21:15 -07:00
Eren Okka
c3c27e5ab5 Fix MSVC warning C4819 2021-06-28 06:14:53 -07:00
Aidan Sun
f85fb9fdff Adjust definition for FMT_HAS_INCLUDE
Adjust definition for FMT_HAS_INCLUDE

Remove check for `!FMT_MSC_VER`
2021-06-27 07:08:29 -07:00
Patrick Geltinger
49a3b58c8b Specify size for static data arrays 2021-06-26 06:55:24 -07:00
Jason A. Donenfeld
c9a10631cb format: do not use udl_{arg,formatter} return types when UDL is not in use
The udl_{arg,formatter} structs are only defined when
FMT_USE_USER_DEFINED_LITERALS is set, so don't try to define things that
return that struct when it's not defined.
2021-06-26 06:25:16 -07:00
Greg Sjaardema
3bd806f12f Eliminate intel compiler warning
The intel compiler defines `__GNUC__`, but does not support the gcc `_Pragma`.  This PR filters out the intel compiler to avoid warnings about an unrecognized function.
2021-06-26 06:16:12 -07:00
Daniela Engert
5221242f6e Instruct msvc to report the _true_ value in __cplusplus and force _full_ C++ conformance
* do this  in _some_ tests to improve test coverage and catch possible problems due to that
 * fix invalid export of `static constexpr` constant
 * fix msvc warnings about unreachable code in high warning levels
2021-06-24 09:10:08 -07:00
Victor Zverovich
31a5f0d399 Bump version in inline namespace 2021-06-22 14:47:59 -07:00
Victor Zverovich
102a4d492a Bump version in inline namespace 2021-06-22 07:04:02 -07:00
Victor Zverovich
92fec0f050 Bump version 2021-06-21 05:57:50 -07:00
Victor Zverovich
427b534054 Add no_value state to value 2021-06-15 07:53:28 -07:00
Victor Zverovich
e421d52713 Simplify error handling in parse_nonnegative_int 2021-06-14 16:05:37 -07:00
Владислав Щапов
a59678f376 Fix chrono_test.locale
UTF-8: https://datatracker.ietf.org/doc/html/rfc3629
2021-06-14 09:41:08 -07:00
Владислав Щапов
c123a72844 Fix set locale error in chrono formatter 2021-06-14 09:41:08 -07:00
Victor Zverovich
3c8fad126c Optimize parse_nonnegative_int 2021-06-13 19:20:44 -07:00
sunmy2019
f28cf3302d
adding a default format for std::chrono::time_point<std::chrono::syst… (#2345) 2021-06-11 10:52:39 -07:00
Daniela Engert
55010a9d3a Support non-char overloads (module) 2021-06-11 09:38:53 -07:00
Daniela Engert
0193e7c428 Support compile-time strings and compile-time format string compilation in module
Make just the necessary parts available for lookup from client context.
2021-06-11 09:38:53 -07:00
Victor Zverovich
3423d75475 Remove the msvc workaround (#2351) 2021-06-11 06:20:25 -07:00
Victor Zverovich
dccddc2bdb Apply clang-format 2021-06-07 08:49:47 -07:00
Victor Zverovich
0e36681b8e Cleanup digit count 2021-06-07 07:42:22 -07:00
Victor Zverovich
1de80f5b22 Workaround lack of static constexpr in constexpr functions 2021-06-07 07:27:56 -07:00
Victor Zverovich
2039dce75f Detect consteval 2021-06-07 06:57:43 -07:00
Victor Zverovich
d551b88a6d Move is_char specializations to xchar.h 2021-06-06 15:32:30 -07:00
Victor Zverovich
206000a017 Workaround pathological conversion (#2343) 2021-06-06 07:18:44 -07:00
Victor Zverovich
76ee490468 Move wchar/custom char overloads to xchar.h 2021-06-05 22:57:45 -07:00
Victor Zverovich
e77b22d6da Deprecate memory buffer overload of format_to 2021-06-05 14:58:36 -07:00
Victor Zverovich
4678192c88 Remove bsr2log10 2021-06-04 21:33:05 -07:00
Victor Zverovich
7c3d3dfa29 Update thousands_sep_impl signature 2021-06-04 21:12:47 -07:00
Victor Zverovich
5223f552c8 Remove FMT_ALWAYS_INLINE 2021-06-04 20:29:54 -07:00
Victor Zverovich
cfde93afe0 Add FMT_STATIC_CONSTEXPR 2021-06-04 16:50:09 -07:00
Cristi
986a5a6c2c Fixed join_view formatter for wchar_t 2021-06-04 14:50:45 -07:00
Tobias Ribizel
7c8b35ff32 fix MSVC Win32 count_digits 2021-06-04 11:06:25 -07:00
Victor Zverovich
3eeb084e71 Optimize count_digits 2021-06-04 09:14:58 -07:00
Victor Zverovich
2ac0bfe59e Improve handling of thousands separator 2021-06-04 06:12:44 -07:00
Victor Zverovich
f4c95f6dd9 Improve handling of thousands separator 2021-06-03 18:25:08 -07:00
Victor Zverovich
0eef389ddb Code style 2021-06-03 18:25:08 -07:00
Victor Zverovich
11addaa16e Update docs 2021-06-03 06:24:17 -07:00
Victor Zverovich
290d3f8b61 Cleanup ranges API 2021-06-02 17:06:02 -07:00
Victor Zverovich
d142579e97 Cleanup the format API 2021-06-02 16:25:21 -07:00
Владислав Щапов
f286139d22 Fix "undefined reference to `fmt::v7::detail::basic_data<void>::digits'"
Remove unused FMT_EXTERN_TEMPLATE_API
2021-06-02 14:33:17 -07:00
Victor Zverovich
a04e3a2dc8 Comment 2021-06-01 20:47:16 -07:00
Victor Zverovich
87876d5474 Cleanup the printf implementation 2021-06-01 20:32:56 -07:00
Victor Zverovich
d338d66324 Cleanup the printf implementation 2021-06-01 19:30:46 -07:00
Victor Zverovich
272660e704 Remove deprecated printf functions 2021-06-01 18:08:31 -07:00
Victor Zverovich
ad97258915 Merge branch 'master' of github.com:fmtlib/fmt 2021-06-01 13:38:26 -07:00
Victor Zverovich
ed2a6377e7 Workaround msvc constexpr issues 2021-06-01 13:32:44 -07:00
Alexey Ochapov
9976869549 fix custom types formatting at compile-time, add test 2021-06-01 11:16:05 -07:00
Victor Zverovich
8c1b22ba6d Workaround a gcc 9.1 bug (#2334) 2021-06-01 06:43:30 -07:00
Daniela Engert
d7ba6c3ea8
Use qualified name-lookup in module. (#2324)
Allow lookup of non-exported names from local classes in function templates.
2021-05-31 09:11:24 -07:00
Victor Zverovich
11a14db286 Update format_to taking a buffer and remove undocumented vformat_to overload 2021-05-30 07:57:51 -07:00
Victor Zverovich
832ec098fc Fix argument order in locale overload of vformat_to (#2327) 2021-05-30 06:42:09 -07:00
Victor Zverovich
486a80e8ef Move wchar_t overloads to xchar.h 2021-05-30 06:41:39 -07:00
Victor Zverovich
5a2b88f6e9 Reduce binary size 2021-05-29 16:45:43 -07:00
Daniela Engert
00a39ad5f8
Enable Char types other than char (#2323) 2021-05-29 11:42:16 -07:00
Victor Zverovich
ff37e41625 wchar.h -> xchar.h because it handles other code unit types too 2021-05-29 09:37:17 -07:00
Victor Zverovich
0901176fe4 arg_join -> join_view 2021-05-29 08:47:16 -07:00
Victor Zverovich
a9a9018191 Move wmemory_buffer to wchar.h 2021-05-29 08:26:04 -07:00
Victor Zverovich
9d67988aed FMT_DEPRECATED_WCHAR -> FMT_DEPRECATED_INCLUDE_WCHAR 2021-05-29 06:41:07 -07:00
Daniela Engert
126c8cb46b
Export os.h API, too (#2318) 2021-05-28 09:27:45 -07:00
Matthias Liedtke
98b9ff47a1
Align hex floats right as default (#2317) 2021-05-28 09:21:01 -07:00
Liedtke
a70a4ae053
Ignore zero-padding for non-finite floating points (#2310)
* Ignore zero-padding for non-finite floating points

* keep width for non-finite formatting with 0-padding

* clang-format

* preserve alignment

* align code-style
2021-05-27 14:13:05 -07:00
Victor Zverovich
4e21baff43 Simplify get_units 2021-05-26 18:26:00 -07:00
John Melas
ca466374bd
qualify make_format_args (#2315)
Co-authored-by: John Melas <john@jmelas.gr>
2021-05-26 06:42:02 -07:00
Victor Zverovich
5a2a185682 Make buffers non-movable 2021-05-25 17:30:17 -07:00
Alexey Ochapov
ee52a6dc40
add fmt::print() overload to support compiled format (#2304) 2021-05-25 14:54:56 -07:00
sven-herrmann
82607efb57
Fixed int conversion warning (#2313)
* Fixed int conversion warning

Compiler warns about conversion from int to size_t, thus added explicit cast.

* now using detail::to_unsigned for the cast
2021-05-25 08:13:39 -07:00
Victor Zverovich
35a2c2a743 Refactor chrono formatting 2021-05-25 06:57:47 -07:00
Victor Zverovich
b955e7a6b2 Refactor chrono formatting 2021-05-24 15:33:33 -07:00
Victor Zverovich
883d9595c5 Support alternative locale names in tests 2021-05-24 14:09:19 -07:00
Victor Zverovich
1cd9899cf3 Add initial support for weekday formatting 2021-05-24 10:21:34 -07:00
Victor Zverovich
dd8f38fcbb Cleanup printf API 2021-05-23 20:30:26 -07:00
Victor Zverovich
a216f2562d Remove undocumented and obsolete vprintf overload 2021-05-23 20:15:02 -07:00
Victor Zverovich
0c0926395d Add is_exotic_char trait 2021-05-23 19:50:17 -07:00
Daniela Engert
8ec0b9e33b Do *not* export namespace detail 2021-05-23 06:49:07 -07:00
Victor Zverovich
703005c8ba Deprecate locale.h 2021-05-22 10:21:17 -07:00
Victor Zverovich
51f0178625 Cleanup the format API 2021-05-22 07:09:09 -07:00
Victor Zverovich
5d59dcf66e Remove deprecated aliases / undeprecate has_formatter 2021-05-22 06:53:34 -07:00
Victor Zverovich
c242dd402c Move cerrno include to where it is used 2021-05-22 06:18:40 -07:00
Victor Zverovich
1c83a49be9 Simplify buffer extraction 2021-05-21 20:15:56 -07:00
Victor Zverovich
2617384d8e Improve buffer extraction 2021-05-21 19:44:49 -07:00
Victor Zverovich
34b8acaef7 More wchar_t-specific API to wchar.h 2021-05-21 18:24:39 -07:00
Victor Zverovich
6326c18906 Improve code style consistency 2021-05-21 17:29:15 -07:00
Matthew Gilbert
5c4b0c86fb Add missing Allocator template argument for basic_memory_buffer in format_to
Remove deduced default template arguments in format_to and moves the
SFINAE check to a non-deduced template parameter.
2021-05-21 12:13:46 -07:00
Victor Zverovich
00149c0b6a Move detail::null to chrono where it is used 2021-05-21 09:16:45 -07:00
Victor Zverovich
c5c968cb22 Improve binary size 2021-05-21 08:50:35 -07:00
Victor Zverovich
18af1dc460 Fix binary size regression caused by b268f88 2021-05-20 18:33:45 -07:00
Victor Zverovich
d1e6f0f8c6 Fix binary size regression caused by b268f88 2021-05-20 18:00:19 -07:00
Daniela Engert
6e2e6b796f Restore support for wchar_t overloads in module 2021-05-20 10:03:58 -07:00
Victor Zverovich
24b677d053 Improve symbol sizes 2021-05-20 07:21:20 -07:00
Victor Zverovich
63271a51c4 Fix ADL issues 2021-05-20 06:31:43 -07:00
Victor Zverovich
61b4c923d7 Reduce code bloat 2021-05-20 05:51:45 -07:00
Michael Winterberg
2a2e4c5801 addressing nits. 2021-05-19 16:09:49 -07:00
Michael Winterberg
be48f4d657 Avoid unwanted sign extensions from MSVC in is_utf8.
Microsoft's constexpr evaluator treats the type of micro[0] and micro[1] as
plain char, and so sign extends before comparing them to ints.
The normal compiler, including the optimizer, does not fail in this way,
so this is merely a "future proof" change in case someone uses is_utf8()
in a constant expression.
2021-05-19 16:09:49 -07:00
Sergiu Deitsch
13e652939b export missed symbols
Enable `-fvisibility=hidden` and `-fvisibility-inlines-hidden` by default in CI builds to ensure all public symbols are exported correctly.
2021-05-19 16:03:45 -07:00
Jessy De Lannoit
71fb113818 fix compile error on msvc preview 4 (16.10) involving lookup clash /w STL 2021-05-19 13:17:20 -07:00
Victor Zverovich
08d22503bb Remove outdated comments 2021-05-19 11:47:21 -07:00
Victor Zverovich
95c358f721 Improve separation between code unit types 2021-05-19 09:06:57 -07:00
Victor Zverovich
39c3c4ec22 Simplify the core API 2021-05-19 08:32:57 -07:00
Victor Zverovich
e9c1c415b8 Improve compile-time checks 2021-05-19 07:57:57 -07:00
Victor Zverovich
21d93bfd33 Move generic format functions to format.h 2021-05-18 19:01:43 -07:00
Victor Zverovich
9a92eb4158 Move more wchar overloads to wchar.h 2021-05-18 05:53:25 -07:00
Victor Zverovich
0dd91e20d5 Add wchar.h for wide char overloads 2021-05-17 21:59:10 -07:00
Victor Zverovich
ce14eafc24 Simplify format string checks 2021-05-17 19:25:50 -07:00
Victor Zverovich
8d70c0edab Refactor the format API 2021-05-17 18:25:36 -07:00
Victor Zverovich
813ac49543 More API cleanups 2021-05-17 07:58:13 -07:00
Victor Zverovich
4ab01fb198 Cleanup printf API 2021-05-17 07:19:50 -07:00
Victor Zverovich
d5036b11b1 Remove deprecated APIs 2021-05-17 06:59:46 -07:00
Victor Zverovich
2581946231 Cleanup the core API 2021-05-16 13:02:01 -07:00
Victor Zverovich
b35db4e006 Improve handling of 128-bit ints 2021-05-16 11:43:44 -07:00
Victor Zverovich
d35f1ad5c1 Cleanup core 2021-05-16 10:02:33 -07:00
Victor Zverovich
8f1902c05a Move format string checks to core.h 2021-05-16 07:08:49 -07:00
Daniela Engert
6469b9037c Silence msvc warning about an unused named parameter
Warning C4100 may cause compile failures under strict warning regimes.
2021-05-16 06:14:30 -07:00
Daniela Engert
5466373a11 Do *not* export namespace detail
Introduce `FMT_BEGIN_DETAIL_NAMESPACE` and `FMT_END_DETAIL_NAMESPACE` for `namespace detail` sections embedded in that part of the code that contains all declarations that are exported from the module, i.e. which is enclosed by `FMT_MODULE_EXPORT_BEGIN` and `FMT_MODULE_EXPORT_END`. Given a correct implementation of C++20 modules, neither the name `fmt::detail` nor any of its contents will become visible outside of the module.
2021-05-15 12:08:42 -07:00
Victor Zverovich
588bdb5404 Simplify get_arg_index_by_name 2021-05-15 06:47:43 -07:00
Alexey Ochapov
54f22a3eef add support for statically named arguments with FMT_STRING 2021-05-14 16:31:10 -07:00
Daniela Engert
ea94d6d93c Prevent ambiguity in name lookup
Unqualified calls to 'make_format_args' may find the same name by ADL in <format> if this C++20 header happens to be directly or indirectly included in a translation unit. Do a qualified lookup instead.
2021-05-14 07:10:02 -07:00
Victor Zverovich
57280762b6 Move specs checker to core.h 2021-05-13 19:33:09 -07:00
Victor Zverovich
ced3037523 Move dynamic specs to core.h 2021-05-13 19:01:21 -07:00
Victor Zverovich
dd2bc998ab Move specs to core.h 2021-05-13 18:48:15 -07:00
Victor Zverovich
08da1adcf6 Remove unused headers 2021-05-13 17:58:15 -07:00
Victor Zverovich
3be0cc2087 Fix handling of 128-bit ints 2021-05-13 17:53:23 -07:00
Victor Zverovich
d1aebdbde0 Inline format_to 2021-05-12 18:07:59 -07:00
Victor Zverovich
02896dabee Avoid use after move (#2278) 2021-05-11 16:58:07 -07:00
Владислав Щапов
0036a1d195 Fix issue #2274. 2021-05-10 15:57:23 -07:00
Владислав Щапов
2a9b314627 Replace fmt::error_code to std::error_code 2021-05-09 12:26:19 -07:00
Victor Zverovich
4862930845 Optimize format string compilation 2021-05-09 09:15:55 -07:00
Victor Zverovich
3207a8bbbf Get rid of unnecessary recursion to enable inlining 2021-05-09 07:54:13 -07:00
Victor Zverovich
6214f15a0c Optimize standard formatter specialization 2021-05-09 07:11:35 -07:00
Victor Zverovich
cd2c78fb8a Use write directly in formatter specializations 2021-05-09 07:07:51 -07:00
Владислав Щапов
4211d86539 Add a formatter specialization for std::error_code. 2021-05-09 06:29:39 -07:00
Victor Zverovich
84feeb0f36 Remove redundant comments and put common case check first 2021-05-07 17:14:29 -07:00
Victor Zverovich
d0abe7c246 Make chrono formatting locale-independent by default 2021-05-07 16:14:10 -07:00
Victor Zverovich
50fb0b5eae Fix formatting 2021-05-07 08:52:49 -07:00
Victor Zverovich
16f2ef91ab Replace fmt::system_error with std::system_error 2021-05-07 08:33:39 -07:00
Victor Zverovich
4b885c8633 Replace windows_error with system_error 2021-05-07 06:19:03 -07:00
Victor Zverovich
5238055f40 Move esoteric char type support to format.h 2021-05-06 09:02:00 -07:00
Victor Zverovich
849c9f6168 Move is_name_start to core 2021-05-06 08:12:24 -07:00
Victor Zverovich
23892caf53 Move more parsing to core 2021-05-06 07:37:40 -07:00
Victor Zverovich
8e6390c32c Move FMT_STRING to core 2021-05-06 07:19:41 -07:00
Victor Zverovich
51a33713fc Move parsing to core 2021-05-06 07:01:29 -07:00
Victor Zverovich
9d7b53cb9b Remove redundant formatter specialization for byte 2021-05-05 08:14:12 -07:00
Victor Zverovich
f0095ccd34 Add support for ranges of types without formatters to join (#2262) 2021-05-05 07:43:46 -07:00
Victor Zverovich
4f0eadfce4 Exclude fallback from is_formattable 2021-05-05 06:29:51 -07:00
Victor Zverovich
400b953fbb Use [] instead of {} in ranges for consistency with Python format 2021-05-04 21:04:21 -07:00
Victor Zverovich
38bcc04a11 Drop range limit and cleanup tests 2021-05-04 20:53:56 -07:00
Victor Zverovich
9155e2de4c Cleanup tests 2021-05-01 17:11:45 -07:00
Victor Zverovich
c9c0e5077d Cleanup tests 2021-04-30 06:42:38 -07:00
Victor Zverovich
ccf4ccde23 Cleanup tests and format string compilation 2021-04-29 19:50:04 -07:00
Victor Zverovich
e96a92f869 Cleanup tests and format string compilation 2021-04-29 16:21:08 -07:00
Daniela Engert
342973b349 Make wchar_t overloads usable in module
Bring ''detail::find()' into scope.
2021-04-28 09:37:57 -07:00
Victor Zverovich
355be4b13f Make FMT_COMPILE fallback on runtime without if constexpr (#2261) 2021-04-28 09:11:47 -07:00
Владислав Щапов
0cd0fb9184 C++17: std::char_traits<>::{compare,length} is constexpr - v2 2021-04-28 07:05:32 -07:00
Daniela Engert
d1a6e5603f Keep defaulted destructors inline
applies to exception classes in case of msvc only
2021-04-28 06:17:26 -07:00
Victor Zverovich
84a36b99bf Move data to functions 2021-04-27 17:21:32 -07:00
Victor Zverovich
ab7c33ede0 Suppress checked iterator warnings 2021-04-27 13:54:39 -07:00
Alexey Ochapov
77258f6069 fix FMT_CONSTEXPR_CHAR_TRAITS check for MSVC 2021-04-26 16:35:32 -07:00
Alexey Ochapov
f085c3d7a0 use proper check for non-type template parameters 2021-04-26 16:35:32 -07:00
Victor Zverovich
69bdc20a3c Workaround missing std::system on iOS, take 2 2021-04-26 06:21:44 -07:00
Alexey Ochapov
1678ed6235 simplify field::format() and spec_field::format(), fix typo 2021-04-25 07:53:49 -07:00
Alexey Ochapov
ca821982ee use named arg with static name in compile-time API
to get arg index by name at compile-time
2021-04-25 07:53:49 -07:00
Alexey Ochapov
ce6e7d8620 use fixed_string to create named arg class with static name for _a literal 2021-04-25 07:53:49 -07:00
Alexey Ochapov
fc56af14c2 move fixed_string from compile.h to format.h 2021-04-25 07:53:49 -07:00
Victor Zverovich
8f9ddf452d Remove deprecated posix.h 2021-04-24 07:03:11 -07:00
Daniela Engert
d3c523e0d2 Export printf-related contexts from printf.h 2021-04-24 06:39:57 -07:00
Daniela Engert
2c25df089f Export replacement type_traits, too 2021-04-24 06:39:57 -07:00
Victor Zverovich
553022dc56 Don't use std::system on iOS (#2248) 2021-04-24 06:17:05 -07:00
Victor Zverovich
8a040d187a Cleanup core-test 2021-04-23 20:07:48 -07:00
Victor Zverovich
064cac2bf9 Bump version 2021-04-23 16:05:03 -07:00
Victor Zverovich
5b2c740ad8 Remove deprecated APIs 2021-04-23 15:27:25 -07:00
Victor Zverovich
b9ab5c8836 Remove printf.h dependency on ostream.h 2021-04-23 10:42:57 -07:00
Victor Zverovich
c47f211296 Simplify data handling 2021-04-23 06:52:10 -07:00
Victor Zverovich
54d3b1710e Move more data out of basic_data 2021-04-23 06:45:23 -07:00
Vladislav Shchapov
128f007b25
C++17: std::char_traits<>::{compare,length} is constexpr. (#2246) 2021-04-23 06:11:34 -07:00
Victor Zverovich
841aad95b4 Move data out of basic_data 2021-04-22 15:29:42 -07:00
Alexey Ochapov
1d4199f46b
fix udl_compiled_string with non-byte chars (e.g. wchar) (#2242) 2021-04-19 08:29:35 -07:00
yumeyao
c5d4fcb119
Appending a space to guarantee non-empty strftime() result. (#2244) 2021-04-18 19:13:51 -07:00
Victor Zverovich
6271406233 Fix a warning (#2233) 2021-04-16 15:58:17 -07:00
denchat
52bd62c72f
Create separate dllexport marking points for clang and msvc. (#2229)
* add FMT_INSTANTIATION_DEF_API for msvc

This should fix https://github.com/fmtlib/fmt/issues/2228

To fix difference dllexport requirements
msvc:  dllexport at template instantiation definition in format.cc
clang: dllexport at template instantiation declaration (extern template) in format.h
2021-04-16 12:34:18 -07:00
Daniela Engert
f4bbc54cc4
Tag official API for module export (#2235)
* functions
 * classes
 * UDLs
 * other declarations

Export everything in namespace 'fmt' from core.h and format.h
2021-04-16 11:04:55 -07:00
Daniela Engert
d8910af80d
Use qualified name lookup rather than ADL. (#2239)
Name lookup within exported templates cannot find non-exported entities by ADL when instantiation takes place outside the module.
2021-04-16 09:38:25 -07:00
crbrz
9260114162
Ranges wide strings support (#2236)
* Ranges copy wchar_t

* arg_join formatter not working for wide strings

* Added ranges wide string tests

Co-authored-by: Cristi <cristi@emailaddressmanager.com>
2021-04-16 06:25:35 -07:00
denchat
42eccac454
Fix clang warning about ignoring __declspec(dllexport) on basic_data<void> template instantitation definition (#2220) 2021-04-12 09:31:44 -07:00
Victor Zverovich
99c2f7a349 Allow including fmt/core.h in the header-only mode 2021-04-10 07:44:36 -07:00
Elliot
78776ee4e2
Fix a conditional expression is constant warning #2210 (#2211) 2021-04-07 10:42:11 -07:00
jstaahl
266107f57c
constexpr uint128_wrapper (#2215)
* constexpr uint128_wrapper

* change FMT_CONSTEXPR to constexpr

* clang format

Co-authored-by: Jake Staahl <jstaahl@snapchat.com>
2021-04-06 22:07:01 -07:00
Alexey Ochapov
2e0d64cf2f specify size for prefixes static data 2021-04-06 17:07:14 -07:00
Victor Zverovich
95da484727 Fix a link 2021-04-03 09:14:52 -07:00
Victor Zverovich
06b3a1000c Add support for time points with arbitrary durations (#2208) 2021-04-02 11:17:14 -07:00
Victor Zverovich
dac42f52b2 Inline fallback is_constant_evaluated 2021-04-01 10:42:09 -07:00
Victor Zverovich
7c43f8b896 Don't use strlen at compile time (#2205) 2021-04-01 10:04:21 -07:00
Jason Cobb
c62e4c30f4 Make buffer_appender default-constructible when back_insert_iterator is 2021-04-01 09:52:44 -07:00
Victor Zverovich
15c10b0c66 Add speech synthesis support 2021-04-01 09:19:36 -07:00
Billy Donahue
308510eb4f "Use" fwrite result (workaround for warn_unused_result)
Fixes #2185
2021-03-31 08:31:35 -07:00
Victor Zverovich
b49af043d7 Remove noexcept from file's move assignment 2021-03-30 09:51:25 -07:00
vtta
14848875bf
Fix: fmt::ostream cannot be moved while holding buffered data #2197 (#2198)
* Add a test case: move ostream while holding data

* Fix moving ostream while holding data

Co-authored-by: Junliang HU <jlhu@cse.cuhk.edu.hk>
2021-03-30 08:43:26 -07:00
Victor Zverovich
b966afcc7a Remove formattable 2021-03-28 14:21:12 -07:00
Victor Zverovich
ec5315a987 Use strlen when possible in fallback basic_string_view 2021-03-28 08:01:55 -07:00
Victor Zverovich
4f8778bab9 Inline basic_format_args's ctor 2021-03-28 07:32:17 -07:00
Yaser Afshar
e2d87548f8 user-defined constructor
user-defined constructor added to prevent Intel compilers
warnings. According to the standard, objects need to have a
user-defined constructor if instances are delcared const.
2021-03-28 06:56:14 -07:00
Yaser Afshar
f7151d384b Extra flag to prevent Intel compiler with Clang front-end warning of 'unknown attribute no_sanitize' 2021-03-28 06:56:14 -07:00
Victor Zverovich
0fb8ef8f79 Inline trivial argument handling functions 2021-03-27 19:05:39 -07:00
Victor Zverovich
1b23e25f95 Simplify formattability check 2021-03-27 18:57:18 -07:00
Victor Zverovich
35c71ff536 Only use -Og with optimizations disabled 2021-03-27 11:35:01 -07:00
Victor Zverovich
243d8bebd1 Enable minimal optimizations in debug mode 2021-03-27 08:40:07 -07:00
Chris White
9b34681d97
Work around xl compiler bug when nvcc preprocesses this file (#2190) 2021-03-27 06:05:49 -07:00
Victor Zverovich
9cb347b4b2 Simplify argument formatters 2021-03-21 09:31:46 -07:00
Ryan Sherlock
0f85a4683a
add default cases (#2186)
Adding default case for switch statements where the compilation
flag -Wswitch-default is present on the command line when spdlog
is included in external projects.

Signed-off-by: Ryan Sherlock <ryan.m.sherlock@gmail.com>
2021-03-19 16:56:52 -07:00
Victor Zverovich
417e1cee9e Stop using deprecated UDL templates 2021-03-19 08:34:55 -07:00
Victor Zverovich
f7e900e12e Simplify UDL definitions 2021-03-19 08:10:58 -07:00
Victor Zverovich
d9661c8f3b Mark grouping as deprecated 2021-03-19 07:54:57 -07:00
Victor Zverovich
14a2a64df4 Fix handling of formattable types with to_string_view (#2181) 2021-03-19 06:43:38 -07:00
Victor Zverovich
6ae402fd0b Fix handling of types with to_string_view and formatter specialization (#2180) 2021-03-18 11:25:43 -07:00
Victor Zverovich
1147782c79 Fix an ambiguous call to check caused by ADL (#2184) 2021-03-17 20:59:36 -07:00
VZ
2f3f3862fa
Fix harmless MSVS warning about using undefined _MANAGED symbol (#2183)
Since the changes of 1305cbeb (Fix MSVC2019 error C2049 when compiling
with /clr (#1897), 2020-09-23), compiling fmt with MSVS 2019 resulted in

fmt\include\fmt\core.h(180,32): warning C4668: '_MANAGED' is not defined
as a preprocessor macro, replacing with '0' for '#if/#elif'.

when the (disabled by default) warning C4668 was enabled.

Fix this simply by checking if _MANAGED is defined before testing it.
2021-03-17 11:21:50 -07:00
Brainy0207
d0bded5988
Fix MSVC /clr builds (#2179) 2021-03-15 08:17:28 -07:00
Victor Zverovich
8308f52c2a Fix dynamic_format_arg_store::push_back comment 2021-03-15 07:10:28 -07:00
Victor Zverovich
5a1127b726 Don't wrap named arg in cref and clarify docs 2021-03-14 09:08:08 -07:00
moiwi
b8ff3c1820
optimize append (#2164) 2021-03-13 07:21:23 -08:00
Alexey Ochapov
c8d8b88223
fix GCC 7,8,9 warning about unused but set parameter (#2177) 2021-03-13 06:36:53 -08:00
Victor Zverovich
bac14ef985 Simplify integer spec checking 2021-03-12 15:02:01 -08:00
Victor Zverovich
8f9db3fcb8 Make ubsan happy on empty format specs (#2175) 2021-03-12 09:13:47 -08:00
Victor Zverovich
af567538a0 Bitpack integral prefixes 2021-03-11 21:22:33 -08:00
Victor Zverovich
cdf877d4b1 Workaround missed optimization opportunity 2021-03-11 16:44:59 -08:00
Victor Zverovich
eef4ba9c02 Optimize integer formatting without padding 2021-03-11 15:47:58 -08:00
Victor Zverovich
a1ea8a82c3 Unbloat my heart 2021-03-11 08:27:53 -08:00
Victor Zverovich
a457e16360 Simplify integer formatter 2021-03-11 08:14:03 -08:00
Victor Zverovich
05bc87a66f Optimize padding 2021-03-10 17:59:36 -08:00
Victor Zverovich
605b603735 Optimize count_digits for powers of 2 2021-03-10 14:48:07 -08:00
Victor Zverovich
85ba271639 Implement 128-bit count_digits in terms of count_digits_fallback 2021-03-10 12:57:46 -08:00
Victor Zverovich
d9835737f0 spec -> specs 2021-03-10 12:51:03 -08:00
Victor Zverovich
60f5d24411 Simplify arg_formatter 2021-03-10 09:35:48 -08:00
Victor Zverovich
30e1302e73 Simplify on_format_specs 2021-03-10 08:46:16 -08:00
Victor Zverovich
87c5cd46ac Optimize parsing of argument ids 2021-03-10 07:04:04 -08:00
Alexey Ochapov
6a9016ea60
fix formatted_size with "compiled format" as argument (#2161) 2021-03-07 06:44:36 -08:00
Victor Zverovich
6e1fc01752 Move detail::truncating_iterator to fmt/compile.h 2021-03-06 08:35:36 -08:00
Jason Cobb
e718ec3e93
Make truncating_iterator an output_iterator (#2158) 2021-03-04 15:53:08 -08:00
John Steele Scott
772aeca338
Don't include <cassert>. (#2148) (#2152)
* Don't include <cassert>. (#2148)

This commit replaces use of the assert() macro in format-inl.h with
FMT_ASSERT(). This allows us to drop the cassert include.

* FMT_GCC_VERSION is not defined when we include test-assert.h, use __GCC__ instead.

* Don't explicitly suppress GCC's -Wterminate in tests' FMT_ASSERT.

Throwing from a separate function is enough to silence the warning, no need to
explicitly suppress it.

* Remove messages from assertions added in 2f699d2.

* Correct formatting around throw_assertion_failure().
2021-03-04 07:28:04 -08:00
Alexey Ochapov
684b5b0e40
Fix fallback to runtime API from compile-time API (#2143)
* fix fallback to the runtime API, add FMT_ENABLE_FALLBACK_TO_RUNTIME_API define, add test

* remove `FMT_ENABLE_FALLBACK_TO_RUNTIME_API`

* pass format string to format_to() inside format_to_n() in compile-time API

instead of compiling it inside format_to_n(), to eliminate code duplication
2021-03-04 07:20:57 -08:00
Alexey Ochapov
d8b9254301
use simplified void_t for all compilers other than gcc 4.x (#2160) 2021-03-02 14:42:27 -08:00
Victor Zverovich
835b910e7d Add an is_formattable trait 2021-02-28 15:25:33 -08:00
Victor Zverovich
578874033a Revert "Optimize handling of integer constants" (#2147)
This reverts commit 2797588be121c79915d374788ce530ad642a98cd.
2021-02-25 05:58:58 -08:00
Jiahao XU
640acba850
Print x.what() of FMT_THROW when exception is disabled (#2145)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2021-02-24 06:29:04 -08:00
Alexey Ochapov
d8e1c9f175
fix fmt::get for some GCC versions and legacy Clang (#2144)
fixes https://github.com/fmtlib/fmt/issues/2140

- some GCC versions decay function pointers to `const void*`, exactly like
  MSVC does
- legacy Clang (prior to 7.0) treats function pointers also as `const T*`
  pointers, but unable to convert them
2021-02-23 07:18:30 -08:00
Victor Zverovich
2797588be1 Optimize handling of integer constants 2021-02-21 11:11:57 -08:00
Victor Zverovich
e8eff3b8fd Fix FMT_STATIC_THOUSANDS_SEPARATOR (#2142) 2021-02-21 07:42:12 -08:00
Alexey Ochapov
ab0f7d7fdc use const& for arguments 2021-02-20 11:50:12 -08:00
Alexey Ochapov
29cc8282b1 update chrono duration formatter (constness), use it in compile-test for specs checks 2021-02-20 11:50:12 -08:00
Alexey Ochapov
3f69af3aaf update wording in the error inside arg_id_handler, use FMT_ASSERT instead of throw 2021-02-20 11:50:12 -08:00
Alexey Ochapov
499047e132 fix incorrect indexing mode for named args, update tests 2021-02-20 11:50:12 -08:00
Alexey Ochapov
78c67157c1 prepare tests, fix incorrect handling of named args with simple {} replacement fields 2021-02-20 11:50:12 -08:00
Alexey Ochapov
b31bc2dc9f simplify try_format_argument(), make manual_indexing_id() a variable 2021-02-20 11:50:12 -08:00
Alexey Ochapov
95e1aa2dc5 add support for manual indexing and named fields, add tests 2021-02-20 11:50:12 -08:00
Victor Zverovich
7e72673d87 Improve width estimation (#2033) 2021-02-13 09:30:29 -08:00
Victor Zverovich
13b117b5bc Improve code point computation 2021-02-13 08:46:19 -08:00
Victor Zverovich
ee0fed639c Fix handling of the + flag with locales (#2133) 2021-02-13 07:08:01 -08:00
Yuval Gamzon-Kapeller
c5979d564e Fix fmt::localtime formatting not working in wide-char string contexts 2021-02-13 06:53:30 -08:00
Mike Crowe
e6ef927e6b
fmt::ptr: Support function pointers (#2131)
Passing a function pointer to fmt::ptr results in:

 In file included from /home/mac/git/fmt/test/gmock/gmock.h:238,
                  from /home/mac/git/fmt/test/format-test.cc:31:
 .../fmt/test/format-test.cc: In member function ‘virtual void FormatterTest_FormatPointer_Test::TestBody()’:
 .../fmt/test/format-test.cc:1486:56: error: no matching function for call to ‘ptr(void (&)(int, double, std::__cxx11::string))’
              format("{}", fmt::ptr(function_pointer_test)));

with GCC and Clang. Let's add an overload to support that usage.

Unfortunately, MSVC would
consider the overload to be ambiguous for unknown reasons:

 D:\a\fmt\fmt\test\format-test.cc(1485,1): error C2668: 'fmt::v7::ptr': ambiguous call to overloaded function [D:\a\fmt\build\test\format-test.vcxproj]
 D:\a\fmt\fmt\include\fmt/format.h(3742,60): message : could be 'const void *fmt::v7::ptr<void,int,double,std::string>(T (__cdecl *)(int,double,std::string))' [D:\a\fmt\build\test\format-test.vcxproj]
           with
           [
               T=void
           ]
 D:\a\fmt\fmt\include\fmt/format.h(3735,42): message : or       'const void *fmt::v7::ptr<void(int,double,std::string)>(T (__cdecl *))' [D:\a\fmt\build\test\format-test.vcxproj]
           with
           [
               T=void (int,double,std::string)
           ]
 D:\a\fmt\fmt\test\format-test.cc(1486,1): message : while trying to match the argument list '(overloaded-function)' [D:\a\fmt\build\test\format-test.vcxproj]

but luckily this means that the overload is unnecessary in that case
anyway, so we can just make it conditional.
2021-02-09 07:35:16 -08:00
Yin Zhong
1980ca8c4e
fix #2118: FMT_COMPILE did not work with tm formatter (#2119)
Co-authored-by: summivox <summivox@github.com>
2021-01-30 08:44:49 -08:00
Alexey Ochapov
2a25e2bf4d
Make ranges-test available with C++11 (#2114)
* make ranges-test available with C++11, fix problem with some gcc versions

* potentially fix build for MSVC 19.10, a bit reorganizing in test
2021-01-30 07:42:58 -08:00
Yin Zhong
b0b56b4379
fix #2116 (FMT_COMPILE requires exceptions enabled) (#2117)
Co-authored-by: summivox <summivox@github.com>
2021-01-28 06:58:49 -08:00
Victor Zverovich
ce519e939b Fix exception propagation from iterators (#2097) 2021-01-23 17:27:24 -08:00
Alexey Ochapov
acef0bb51a
use gcc-10.2 instead of gcc-10.1 on CI, also fix one problem (#2110)
the problem was not detected by test because of wrong gcc-10 minor version on CI
2021-01-23 07:52:41 -08:00
Ivan Polyakov
8bf28e6bb1
Add support for s format specifier to bool (#2094) (#2109) 2021-01-23 07:32:41 -08:00
Walter Gray
456efa4666
add missing detail namespace (#2107)
Co-authored-by: Walter Gray <walter.gray@getcruise.com>
2021-01-19 17:44:15 -08:00
Ivan Shynkarenka
80dc7cceb8
Fixed format.h(1465): warning C4702: unreachable code (#2106)
* Fixed format.h(1465): warning C4702: unreachable code

* Fixed format.h(1416): warning C4702: unreachable code
2021-01-19 17:13:10 -08:00
Victor Zverovich
7fd535c6ae Cleanup 'L' handling 2021-01-18 07:57:38 -08:00
Victor Zverovich
e4f2cf455e Make 'L' a modifier 2021-01-17 09:28:46 -08:00
Victor Zverovich
532e846b86 Fix width computation in float formatter 2021-01-15 11:07:55 -08:00
Victor Zverovich
f8c2f8480a Fix handling of width when formatting int as char 2021-01-14 08:41:17 -08:00
Victor Zverovich
0fe0b15e71 Fix handling of # in width computation 2021-01-13 16:48:07 -08:00
Victor Zverovich
061e364b25 Document output_file 2021-01-09 07:18:56 -08:00
Victor Zverovich
9ec5592bb5 Fix writing to stdout when redirected to NUL on Windows (#2080) 2020-12-30 13:23:37 -08:00
Alexey Ochapov
cdc5ef6710
Remove fallback to inline specifier from FMT_CONSTEXPR(20) macro (#2075) 2020-12-30 06:23:20 -08:00