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