Victor Zverovich
de684ef776
Make appender compatible with fill
2024-07-19 15:21:57 -07:00
Victor Zverovich
808ea0191a
Cleanup test
2024-07-17 06:59:24 -07:00
Victor Zverovich
e10643add2
Add a perf-sanity test
2024-07-14 14:17:39 -07:00
Justin Riddell
5ef93a9f80
Expand FMT_FORMAT_AS to include implicit conversions ( #4055 )
...
Allows (for example) types convertible to std::string_view to inherit
from the fmt::formatter<fmt::string_view> to work etc.
2024-07-14 09:51:49 -07:00
Victor Zverovich
58d792b6d3
Apply minor optimizations
2024-07-14 07:05:18 -07:00
Victor Zverovich
33e7ed1eb5
Improve handling of back_insert_iterator that writes into a buffer
2024-07-13 07:56:11 -07:00
Justin Riddell
13038f37e8
Support printing (const) volatile void* ( #4056 )
...
Fixes #4049
2024-07-10 08:35:06 -07:00
Justin Riddell
e60ff504ea
Fix usage with std::generator ( #4057 )
...
Fixes #4053
2024-07-09 08:46:34 -07:00
Victor Zverovich
92227c77a4
Improve support for non-POSIX platforms more
2024-07-08 14:00:00 -07:00
Victor Zverovich
7a8b54a0ef
Don't confuse Glib::ustring with std::string
2024-07-06 13:27:06 -07:00
Vladislav Shchapov
a96259701e
Improve std::complex formatter ( #4050 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-07-04 17:24:01 -07:00
Victor Zverovich
e50c8b6bd8
Fix disabling Unicode support
2024-07-04 07:27:22 -07:00
toge
9d946a2fc4
Fix compilation errors due to make_format_args in gcc 14.1.1 with c++20 ( #4042 )
2024-07-03 12:41:08 -07:00
Victor Zverovich
edde973126
Update test names
2024-06-22 11:10:54 -07:00
Victor Zverovich
b1efe8516e
Prevent silent data loss
2024-06-22 07:46:16 -07:00
Matt Stafford
2c0d9e9409
Add a define to force the use of fallback_file
2024-06-21 09:42:02 -07:00
Vladislav Shchapov
514b6955d2
Suppress a bogus warning in MSVC ( #4023 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-06-19 08:49:43 -07:00
Matthias Moulin
794df69c8c
Added range_format::(debug_)string formatter ( #3973 )
2024-06-13 15:43:29 -07:00
Victor Zverovich
7bd11b5cdf
Remove a redundant extension to reduce divergence from std::format
2024-06-08 08:29:34 -07:00
Victor Zverovich
598e518085
Remove redundant tests
2024-06-05 08:38:00 -07:00
ZaheenJ
ca8eeb09ee
Add glibc ext for day of month and week of year ( #3976 )
2024-05-30 10:20:56 -07:00
Matthias Moulin
728f9bc388
Added std::type_info formatter ( #3978 )
...
* Added std::type_info formatter;
* Reused std::type_info formatter in std::exception formatters;
* Updated MSVC std::type_info outputting to exclude all class, struct and enum occurences.
2024-05-28 10:57:08 -07:00
Matthias Moulin
1752d7fbbb
Added formattable concept ( #3974 )
2024-05-26 07:47:56 -07:00
Justin Riddell
fc723fd6c7
Fix regression in #3710 ( #3968 )
...
Regression introduced in 11f2f30
Already have a test for this, but needed to make __cpp_lib_ranges
smaller to enable it
2024-05-23 12:39:11 -07:00
Justin Riddell
b81761068b
Check range_begin is dereferenceable ( #3964 )
...
Fixes issue #3839
An Eigen 3.4 2x2 matrix has a begin member function that returns void
Be more strict checking that the result of calling *begin() is valid
See input_or_output_iterator concept notes about void
2024-05-20 16:11:07 -07:00
Victor Zverovich
75e892420e
Minor cleanup
2024-05-16 10:45:23 -07:00
Victor Zverovich
0b5287f8b7
Remove unused function
2024-05-15 16:47:35 -07:00
Justin Riddell
8e728044f6
Fix format_as for non-const begin/end views ( #3955 )
...
base::format does not accept rvalues, using the result of format_as
directly means it is passed one. Doesn't matter for ranges with a const
begin and end, but filter_view caches, so it only has mutable begin/end.
Use auto&& to avoid copy if format_as returns const ref
2024-05-13 09:35:55 -07:00
Victor Zverovich
7d6ae972b9
Cleanup unicode checks
2024-05-11 19:43:46 -07:00
Victor Zverovich
b7809f91e2
Enable Unicode support by default
2024-05-11 15:11:23 -07:00
Victor Zverovich
d2473b7b73
Simplify join_view formatter
2024-05-08 15:42:49 -07:00
Justin Riddell
10508a30ec
Enable fmt::join for uncopyable iterators ( #3946 )
...
If iterator not copyable mutate the underlying iterator
Notably std::ranges::basic_istream_view::__iterator
Addresses issue (#3802 )
2024-05-05 15:44:23 -07:00
Victor Zverovich
16cec4f591
Make the map formatter correctly handle elements with custom formatters
2024-05-04 10:59:16 -07:00
Alex Dewar
9234fe83f9
Add tests to check that isnan doesn't cause FP errors
2024-05-02 09:36:21 -07:00
Diego Ramírez
cf1f55f798
Specialize formatter for all std::basic_string types ( #3943 )
...
* Specialize `formatter` for all `std::basic_string` types
* mock-allocator: add member types to make GCC 4.8 happy
2024-04-23 08:44:41 -07:00
Victor Zverovich
400f6a8ee2
Dedup ADL begin/end lookup
2024-04-22 16:09:07 -07:00
Hans-Martin B. Jensen
ee0c3351a4
Fix format_to + FMT_STRING for wide character type ( #3931 )
...
Added overload that takes a wformat_string.
Fixes issue #3925 .
2024-04-17 08:30:48 -07:00
Victor Zverovich
c70e7b7473
Coding conventions and minor fixes
2024-04-05 08:36:45 +09:00
zivshek
71144eeaff
implement year_month_day ( #3913 )
...
* implement year_month_day, also changed weekday, day, month, year's formatter to use formatter<std::tm, Char> so they all support the format strings
* support ":L" for month and weekday
2024-04-03 15:35:53 -07:00
zivshek
74a187288b
Implemented fmt::day, fmt::month, fmt::year and related unit tests ( #3906 )
2024-03-27 17:10:30 -07:00
Victor Zverovich
5af88653eb
Cleanup
2024-03-22 13:46:03 +09:00
Vladislav Shchapov
45b772f85c
Improve std::complex formatter to be compatible with P2197R0 ( #3900 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-03-20 13:31:32 -07:00
Victor Zverovich
53347891cf
Make line buffering test less flaky
2024-03-20 16:45:50 +09:00
Vladislav Shchapov
6c7cc6a06f
Fix group_digits for negative integers ( #3901 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-03-19 13:03:57 -07:00
Victor Zverovich
365c3fbd25
Bump timeout
2024-03-19 10:49:02 +09:00
Victor Zverovich
c0dac83982
Use p2197 format for complex by default
2024-03-19 07:55:45 +09:00
Vladislav Shchapov
c710bfa10c
Apply clang-format
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-03-17 15:26:18 -07:00
Vladislav Shchapov
73f2b344b2
Add std::complex formatter
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-03-17 15:26:18 -07:00
Victor Zverovich
c816fa6751
Fix a warning
2024-03-10 10:27:42 -07:00
Victor Zverovich
e281749c5d
Simplify range formatter
2024-03-10 08:19:26 -07:00
mtillmann0
13cfaa2ab0
Guard against usage of _isatty when header was not included ( #3880 )
...
* Guard against usage of _isatty when header was not included
* Rename FMT_WINDOWS_NO_WCHAR macro to FMT_USE_WRITE_CONSOLE
2024-03-08 13:34:46 -08:00
js324
0861db500f
Support character range formatting ( #3863 )
2024-03-07 10:51:46 -08:00
vgorrX
dfe5b12c08
Update os-test.cc ( #3883 )
...
uniq test file names for the os-test suite (#3878 issue).
2024-03-06 06:37:57 -08:00
Victor Zverovich
3bc6cc1e63
Protect against locking formatters
2024-03-02 17:23:02 -08:00
Victor Zverovich
91b30e5b4e
More API details
2024-02-10 08:10:59 -08:00
Bruce Mitchener
3a6fb2fcaf
Fix some typos. ( #3843 )
2024-02-08 10:59:52 -08:00
js324
34f415b56e
Fix %S formatting for chrono durations with leading zeroes ( #3814 )
2024-02-07 09:47:32 -08:00
Victor Zverovich
e17bc67547
Make scan variadic
2024-02-04 08:07:00 -08:00
Victor Zverovich
06311ed1ce
Fix fixed rounding around zero in Dragon
2024-02-03 10:13:58 -08:00
Dominic Pöschko
e5bab8dab4
added formatter for std::expected ( #3834 )
2024-02-03 09:06:15 -08:00
Victor Zverovich
b5669512b1
Don't hang on test failure
2024-01-27 09:41:33 -08:00
Victor Zverovich
6435b169ec
Add support for line buffering
2024-01-27 08:57:21 -08:00
Victor Zverovich
6f260455aa
Add scan_data::make_args
2024-01-23 08:17:06 -08:00
Beat Bolli
e1832bcf00
Consider ADL begin() and end() when joining ranges ( #3824 )
...
Closes #3813
Signed-off-by: Beat Bolli <dev@drbeat.li>
2024-01-22 07:39:33 -08:00
Victor Zverovich
2caf1b3b91
scan more
2024-01-21 08:02:54 -08:00
Victor Zverovich
4c5b4af04d
Improve name argument validation
2024-01-19 16:13:43 -08:00
Victor Zverovich
6b68dff901
Write directly to a stream buffer
2024-01-18 16:27:12 -08:00
Victor Zverovich
8510838db1
Make format_specs not depend on code unit type
2024-01-17 07:50:52 -08:00
Vladislav Shchapov
470c4e6ca8
Fix scope for glibc ext for sec, min, and hour ( #3812 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-16 13:54:19 -08:00
The Phantom Derpstorm
13ec66bf78
🛠 Add basic array safety functions and backwards-compatible result type ( #3805 )
2024-01-16 07:01:15 -08:00
Victor Zverovich
e954823531
Make fill independent on code unit type
2024-01-15 15:00:28 -08:00
Vladislav Shchapov
d249fd9f84
Workaround for gcc 6 ( #3810 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-15 08:58:19 -08:00
Victor Zverovich
fe0d910a7d
Replace multiple error reporting mechanisms with report_error
2024-01-15 07:23:06 -08:00
Victor Zverovich
f9294f0e60
Improve handling of format specs
2024-01-15 06:31:24 -08:00
Victor Zverovich
3647feaad5
Improve scan
2024-01-14 09:30:45 -08:00
Victor Zverovich
e420a58f24
Improve scan prototype
2024-01-14 08:51:33 -08:00
Victor Zverovich
ca37503f93
scan -> scan_to
2024-01-14 08:30:42 -08:00
Victor Zverovich
123e058eb3
Improve scan prototype
2024-01-14 08:11:13 -08:00
Victor Zverovich
f924d20dbd
core-test -> base-test
2024-01-14 06:57:01 -08:00
Victor Zverovich
d70729215f
Fix constness
2024-01-14 06:44:38 -08:00
Victor Zverovich
d0963d4823
Make ranges only depend on fmt/base.h
2024-01-13 09:54:19 -08:00
Vladislav Shchapov
21b0458291
Use std::allocator_traits ( #3804 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-13 08:48:37 -08:00
Victor Zverovich
297b22f585
Remove <memory> dependency
2024-01-12 09:09:19 -08:00
Victor Zverovich
52174953bc
Cleanup conseval detection
2024-01-12 05:59:22 -08:00
Victor Zverovich
fd87a23d34
Reduce memory dependency
2024-01-10 20:00:15 -08:00
Victor Zverovich
971f7ae768
Minor cleanup
2024-01-10 16:43:00 -08:00
Tristan Brindle
2595bf57b3
Fix formatting of ranges with begin()&/end()&
...
C++20 allows ranges to have lvalue-qualified begin() and end() member functions. fmt correctly handles this if begin() and end() are additionally const-qualifed (i.e. begin() const&), but not in the non-const case. For example:
https://godbolt.org/z/YfxaYz5r7
This patch fixes fmt's range detection to handle this case by testing calls to detail::ranges_begin()/end() with an lvalue T&, matching the behaviour in the const case.
2024-01-10 12:22:53 -08:00
Vladislav Shchapov
961df829b9
Fix buffer overflow if output iterator is std::back_insert_iterator and value is escaped (debug format)
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-10 09:15:16 -08:00
Victor Zverovich
401f087394
Fix write_uintptr_fallback
2024-01-10 09:09:57 -08:00
Victor Zverovich
4331abed26
Move fmt::format to fmt/format.h
2024-01-10 06:43:12 -08:00
Victor Zverovich
79f1506fe3
Add base.h
2024-01-09 19:36:12 -08:00
Vertexwahn
8875cf96c2
Fix spelling: othewise ==> otherwise ( #3791 )
2024-01-09 10:32:46 -08:00
Victor Zverovich
fb66131efa
Improve arg storage
2024-01-08 21:25:41 -08:00
Victor Zverovich
a5ae9ae19d
Split standard context into a separate class and optimize
2024-01-08 07:08:49 -08:00
Victor Zverovich
23e8109d8d
Remove buffer_appender
2024-01-07 22:03:02 -08:00
Victor Zverovich
df67df7b4c
Add is_back_insert_iterator
2024-01-07 16:44:42 -08:00
Victor Zverovich
dbdfc99fa1
Don't crash if flush fails during unwinding
2024-01-07 14:55:16 -08:00
Victor Zverovich
0641b844ac
Cleanup string traits
2024-01-05 19:31:04 -08:00
Victor Zverovich
c9d233c0a4
Decouple appender from back_insert_iterator
2024-01-03 06:16:00 -08:00
Victor Zverovich
e2ab9ab22b
Add FMT_GLIBCXX_RELEASE
2024-01-02 16:15:23 -08:00
Victor Zverovich
63ce170853
Replace virtual dispatch with normal functions in buffers
2024-01-02 07:02:20 -08:00
Victor Zverovich
6c3b2d491e
Fix constness
2024-01-01 19:50:36 -08:00
Victor Zverovich
068bf9bad8
Make visitation compatible with std::format
2024-01-01 17:31:36 -08:00
Victor Zverovich
50565f9853
Move misplaced join overloads to fmt/ranges.h
2024-01-01 16:28:59 -08:00
Victor Zverovich
0b39d67103
Remove detail::error_handler
2024-01-01 16:10:13 -08:00
Victor Zverovich
c142385033
Improve the pipe API
2024-01-01 15:55:37 -08:00
Victor Zverovich
ce3161887a
Add overflow check
2024-01-01 09:17:10 -08:00
Victor Zverovich
e1aac42663
Implement hex specifier
2024-01-01 09:03:46 -08:00
Victor Zverovich
1705600be3
Remove optional
2024-01-01 09:03:46 -08:00
Victor Zverovich
d33731d202
Implement empty format specs
2024-01-01 07:54:02 -08:00
Victor Zverovich
c068c7c622
Add sentinel support
2024-01-01 07:25:01 -08:00
Bruce Mitchener
ebd5c8f994
Consistently use fmt:: when invoking format_to. ( #3779 )
...
This has been done partially in previous commits:
* 2ac6c5ca8b3dfbcb1cc5cf49a8cc121e3984559c
* 258000064d71a7d228d608a2e3d43bde3e32a658
* ba50c19e827383bd5dacb74189fb4852c8dcbdae
* 5ab9d39253b8bcb85a475dc058955b3916f3410a
A patch that includes the `std::error_code` changes here is
upstream in vcpkg, so that will be able to be removed when
updating to the next release.
2024-01-01 06:57:03 -08:00
Victor Zverovich
f5ca178c12
Complete scan_handler
2023-12-31 18:00:14 -08:00
Victor Zverovich
138a64bfb1
Privatization
2023-12-31 15:06:17 -08:00
Victor Zverovich
4aa24f54cd
Implement visitor for scan
2023-12-31 09:53:24 -08:00
Victor Zverovich
e33c1568c3
Implement scan argument access
2023-12-31 08:49:29 -08:00
Victor Zverovich
23826669cf
Cleanup error handling
2023-12-31 07:51:57 -08:00
Victor Zverovich
8e6b2541a6
Apply coding conventions
2023-12-30 16:07:35 -08:00
Victor Zverovich
5ddd0cad15
Add a visitor for scan arguments
2023-12-30 07:43:21 -08:00
Victor Zverovich
55190dadb5
Cleanup chrono test
2023-12-29 16:34:42 -08:00
Victor Zverovich
4a6f0be5b6
Improve scan test
2023-12-29 08:32:38 -08:00
Victor Zverovich
662d784157
Fix scan test
2023-12-29 08:21:10 -08:00
Victor Zverovich
d5823aae36
Ceci n'est pas une pipe
2023-12-29 08:11:29 -08:00
Victor Zverovich
d83c1b8d4a
Add initial specifier support to scan
2023-12-29 07:30:56 -08:00
Victor Zverovich
bfba2f9e92
Improve iterator handling in scan
2023-12-29 06:34:49 -08:00
Victor Zverovich
a3bf40838f
Initial range support in scan
2023-12-29 06:25:57 -08:00
Victor Zverovich
ea1066bbe3
Cleanup test
2023-12-28 16:56:42 -08:00
Victor Zverovich
be57ec7ec0
Fix chrono-test on platforms with 32-bit time_t
2023-12-28 16:36:18 -08:00
Victor Zverovich
47c8f63d02
Remove redundant specifier
2023-12-28 07:32:07 -08:00
Victor Zverovich
4cbf6182ea
Remove peek
2023-12-25 10:47:45 -08:00
Victor Zverovich
88d19f5de9
Cleanup scan
2023-12-25 10:28:50 -08:00
Victor Zverovich
62529aad19
Apply coding conventions
2023-12-25 10:20:00 -08:00
Victor Zverovich
eef6dbafbf
Refactor file layer in scan
2023-12-25 09:32:29 -08:00
Victor Zverovich
41c2433358
clang-format
2023-12-25 09:09:20 -08:00
Victor Zverovich
0a9d08fefd
Simplify fallback
2023-12-25 09:00:03 -08:00
Victor Zverovich
e450b7aeb3
Implement locking
2023-12-25 08:48:45 -08:00
Victor Zverovich
c5a85f8d7d
Handle end of input in scan
2023-12-25 07:18:23 -08:00
Victor Zverovich
c4f2de4933
Improve scan
2023-12-25 06:34:15 -08:00
Victor Zverovich
6f9a816786
Enable test
2023-12-23 10:14:27 -08:00
Victor Zverovich
e7875ae0fa
Fix formatting of some nested ranges
2023-12-23 09:35:32 -08:00
Victor Zverovich
3eb3aef575
Fix handling of set_debug_format
2023-12-23 08:32:36 -08:00
Victor Zverovich
56d7a8c157
Simplify test
2023-12-23 07:02:58 -08:00
Victor Zverovich
44dd6c0e09
Add glibc support to scan
2023-12-22 13:43:20 -08:00
Victor Zverovich
3a0f4af4e9
Refactor file layer
2023-12-22 11:27:22 -08:00
Victor Zverovich
1ca1a4a7a9
Update scan test
2023-12-22 08:22:00 -08:00
Victor Zverovich
3a2c50d4ac
Cleanup test
2023-12-19 15:28:10 -08:00
Victor Zverovich
18c43a214c
Cleanup test
2023-12-19 13:46:48 -08:00
Vladislav Shchapov
6b07fff0d9
Make hex float test more stable on different libc ( #3762 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-12-19 11:03:06 -08:00
Vladislav Shchapov
923005bd4f
Add stdlib version check for C++20 ( #3754 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-12-17 08:33:17 -08:00
Victor Zverovich
afa85e46c3
Apply clang-format
2023-12-17 07:32:22 -08:00
js324
6025bd7c37
Add localized formatting to non-decimal presentation types of ints ( #3750 )
2023-12-15 07:51:25 -08:00
Kefu Chai
274ba2645b
allow format_as() to format reference ( #3739 )
...
before this change, format_as() is unable to format a type which
has `auto format_as() -> const another_type&`, and `another_type`
is formattable. because `format_as_result` maps the result type
as it is, and the compiler refuses to compile
`static_cast<T*>(nullptr)`, where T is a reference type. but
it would be handy if we could use `format_as()` to format types
which, for instance, owns / inherit from a formattable type, and
delegate the formatter to these variables instead without creating
a copy of them.
in this change:
* instruct `format_as_result` to map the
result type to the decayed type, so that `type` can be the decayed
type of result type, and this also enables `type` to be formattable,
as long as the decayed type is formattable.
* corresponding test is added to format-test.cc
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-12-10 08:49:53 -08:00
Victor Zverovich
9048add999
Report out-of-range errors in chrono
2023-12-10 08:28:50 -08:00
Ikko Eltociear Ashimine
9a6fd11a56
Fix typo in gmock-gtest-all.cc ( #3747 )
...
syntetic -> synthetic
2023-12-09 08:13:20 -08:00
js324
573d74395b
error on bool arg w/ char pres_type ( #3734 )
2023-12-05 13:45:10 -08:00
Victor Zverovich
5d55375a8a
Experiment with scan buffering
2023-12-03 08:09:36 -08:00
Ivan Shapovalov
71bd51e6c2
Implement %j specifier for std::chrono::duration ( #3732 )
...
This adds support for `%j` presentation type for duration types:
> "If the type being formatted is a specialization of duration, the decimal
number of days without padding."
Fixes #3643 .
2023-12-03 07:29:58 -08:00
Victor Zverovich
f575089243
Simplify test
2023-12-01 08:52:42 -08:00
Félix-Antoine Constantin
99b9fbf8ef
Add formatter for std::source_location ( #3730 )
2023-11-30 10:05:56 -08:00
Victor Zverovich
04718008ab
Minor cleanup
2023-11-30 07:43:31 -08:00
js324
b87ea22e29
Add native and generic representation for filesystem::path format spec ( #3729 )
2023-11-29 14:49:36 -08:00
Victor Zverovich
5cfd28d476
Experiment with FILE in scan
2023-11-26 10:01:42 -08:00
Corentin Schreiber
7f8d419115
Fix overflow in time_point formatting with large dates ( #3727 )
...
* Fix #3725 and rename fmt_safe_duration_cast to fmt_duration_cast
The function is now more generic and will handle all casts. It also
takes care of toggling safe vs unsafe casts using
FMT_SAFE_DURATION_CAST.
* Refactor fmt_duration_cast to put #ifdef inside the function
* Fix compilation error with FMT_USE_LOCAL_TIME
2023-11-25 08:36:55 -08:00
Victor Zverovich
ccc9ab7bf9
Include correct header
2023-11-25 08:23:41 -08:00
Victor Zverovich
c4283ec471
Fix a libc++ warning and move the test to the right place
2023-11-25 08:20:53 -08:00
Victor Zverovich
c3f9a73445
Apply coding conventions
2023-11-25 07:43:44 -08:00
Victor Zverovich
ffa5b14fe3
Make gtest-extra-test more portable
2023-11-24 10:09:21 -08:00
Victor Zverovich
bea7ecc710
Disable locale-specific tests on OpenBSD
2023-11-24 09:45:56 -08:00
Victor Zverovich
8a39388516
Fix the default locale in ostream_formatter
2023-11-24 09:24:43 -08:00
Victor Zverovich
c13753a70c
Fix handling of invalid Unicode in precision
2023-11-18 08:36:11 -10:00
Ole Bøe
864a8b5f38
fix: support optional<T> with format_as(T) ( #3713 )
...
Formatting a std::optional<T> where T had a custom format_as(T) function failed to compile with clang,
due to set_debug_format being hidden by private inheritance. This fix makes the function available through a using clause.
2023-11-16 15:02:33 -08:00
Victor Zverovich
649fe0fc8b
Fix handling of null strings with the s specifier
2023-11-15 17:03:01 -10:00
Victor Zverovich
19276d7325
Fix an inconsistentcy between to_string and format
2023-10-28 08:05:11 -07:00
June Liu
2ac6c5ca8b
Fix error C2668 on Windows with option /std:c++latest ( #3680 )
...
* Namespace-qualify to avoid ambiguity with std::format_to for format-test.cc
When build fmt with MSVC under option /std:c++latest, it failed due to `error 2668: 'std::format_to': ambiguous call to overloaded function`, so add namespace to qualify the call to format_to to avoid this issue.
2023-10-16 09:54:02 -07:00
Victor Zverovich
130cf54cbc
Use a more sensible locale in tests
2023-10-08 10:49:21 -07:00
Victor Zverovich
8e0ca0589f
Use a more sensible locale in tests
2023-10-08 09:21:02 -07:00
Victor Zverovich
bf497ac068
Cleanup test
2023-10-08 07:30:08 -07:00
Richard Kellnberger
bb8d50f04b
add a suffix for days and fix the one for minutes ( #3664 )
2023-10-07 12:45:34 -07:00
Giel van Schijndel
f76603f21e
fix: make std::bitset formattable again ( #3660 )
...
* fix: make std::bitset formattable again
It used to be formattable via operator<<(ostream&) implicitly. Make it
formattable again, but this time via formatter specialization.
* fix: make nested_formatter constexpr default constructible
2023-10-03 09:53:47 -07:00
Vladislav Shchapov
492a99c964
Fix error: 'char_traits<custom_char>' is deprecated: char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in LLVM 18, so please migrate off of it. [-Werror,-Wdeprecated-declarations] ( #3634 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-09-18 15:46:17 -07:00
Victor Zverovich
0e01e46c11
Implement nested formatter
2023-09-18 14:21:21 -07:00
Dana Jansens
f6ca4ea199
Avoid a space in the UDL definition ( #3610 )
...
* Avoid a space in the UDL definition except on GCC before 4.9
Clang 18 has grown a warning about the space being deprecated which
is enabled by default in their nightly binaries. However GCC before 4.9
will reject the UDL definition unless there is a space there, so we need
to keep the space conditionally for it.
* Remove UDLs on GCC before 4.9 to simplify things
GCC before 4.9 rejects the syntax that is now
rejected on more modern compilers.
* Disable compile-error-test on GCC < 4.9
This avoids the UDL tests failing as GCC < 4.9 can not parse UDLs
without a space, but the space is malformed in modern compilers.
2023-09-18 08:09:42 -07:00
Gleb Mazovetskiy
a8a73da7e4
Add an option to avoid wchar APIs on Windows ( #3636 )
...
With this, fmt can be used on Windows 98 and the Original Xbox with:
set(FMT_OS OFF)
It is not exposed as a CMake option but one can define it manually
in the fmt subproject, e.g.:
target_compile_definitions(fmt PUBLIC FMT_WINDOWS_NO_WCHAR)
Fixes #3631
2023-09-17 08:49:51 -07:00
Vladislav Shchapov
016b1faede
Fix symbol leak ( #3627 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-09-16 07:26:36 -07:00
Victor Zverovich
d4987546a4
Add an experimental nested formatter
2023-09-10 11:56:55 -07:00
Victor Zverovich
ca608547e5
Workaround a C++11 issue
2023-09-04 10:07:14 -07:00
Victor Zverovich
a79a979828
Cleanup ranges test
2023-09-04 09:19:40 -07:00
Victor Zverovich
457bb6a98f
Merge the copyright comment since there are many contributors
2023-09-04 09:09:01 -07:00
Alex Guteniev
9b74160817
atomic_flag formatting (#3594 )
2023-08-25 08:06:10 -07:00
Ben Deane
6c845f57e5
Fix formatted_size with FMT_COMPILE and format specs ( #3588 )
...
Addresses issue #3586
2023-08-15 06:45:48 -07:00
Zhanwei Wang
5a866fe852
Add formatter for std::atomic ( #3574 )
2023-08-14 08:34:31 -07:00
Vladislav Shchapov
e150ea0cc2
to_string supports types with format_as
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-08-13 08:39:52 -07:00
Victor Zverovich
d424862319
Fix fixed precision handling during rounding in long double
2023-08-07 13:56:53 -07:00
Vladislav Shchapov
aeb6ad4dd0
Added formatter for bit_reference-like types ( #3570 )
...
* Add test for std::vector<bool>::reference
Co-authored-by: Felix <felix-antoine.constantin@polymtl.ca>
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
* Add test for std::bitset<N>::reference
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
* Add test for const std::bitset<N>::reference and const std::vector<bool>::reference
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
* Add bit_reference-like formatter
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
* Use std::addressof
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
---------
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Co-authored-by: Felix <felix-antoine.constantin@polymtl.ca>
2023-08-06 11:36:30 -07:00
5chmidti
8a4bec5cf5
fix ambiguous formatter lookup for flat_set ( #3561 )
2023-07-31 09:26:33 -07:00
Victor Zverovich
3dec65b7fd
Use replacement character in path
2023-07-22 09:07:28 -07:00
Victor Zverovich
ac0ab8eff3
Improve path formatter
2023-07-20 17:49:12 -07:00
Victor Zverovich
e475859042
Fix overspecified tests
2023-07-20 14:09:22 -07:00
Victor Zverovich
436c131d4c
Optimize compiled format_to_n
2023-07-20 12:35:01 -07:00
Victor Zverovich
388bc296b7
Fix fixed formatting of small long doubles
2023-07-20 12:06:05 -07:00