Victor Zverovich
e2f89e6d21
Remove deprecated aliases
2025-08-31 09:40:11 -07:00
Victor Zverovich
489fd7ca4b
Simplify locale handling
2025-08-31 09:33:43 -07:00
Victor Zverovich
69324379f2
Mark detail::assert_fail as deprecated
2025-08-31 08:11:57 -07:00
Björn Schäpers
ff1caa58c9
Use FMT_THROW in report_error ( #4521 )
...
With exceptions: No change (if FMT_THROW is not user provided)
Without exceptions: Now also states where it comes from (report_error)
and uses fprintf instead of fputs.
My motivation is, now that I have my own fmt::assert_failed, also to get
rid of fputs for my embedded build.
2025-08-31 08:05:54 -07:00
Björn Schäpers
e181e94140
Add FMT_CUSTOM_ASSERT_FAIL ( #4505 )
...
That way one can provide ones own implementation for assert_fail, which
is moved out of the detail namespace. For binary compatibility the
detail version stays to call the outer version.
2025-08-25 09:02:00 -07:00
Victor Zverovich
8e4676e4a5
Remove deprecated template parameter
2025-08-24 09:52:17 -07:00
Victor Zverovich
b5c4d25cd1
Rename is_char to is_code_unit
2025-08-24 09:30:50 -07:00
Victor Zverovich
a77efa4b4a
Move is_*char to detail
2025-08-24 09:16:18 -07:00
Victor Zverovich
e7e71009c7
Make FP formatting compatible with exotic chars
2025-08-24 08:49:54 -07:00
Victor Zverovich
b7b261977e
Simplify report_error
2025-08-24 08:30:17 -07:00
Victor Zverovich
61e0503daf
Merge workarounds for bogus MSVC warnings
2025-08-24 08:18:47 -07:00
Victor Zverovich
72c82296d6
Put FMT_END_* together
2025-08-17 12:25:40 -07:00
Victor Zverovich
a402614e8c
Remove deprecated aliases
2025-08-17 11:52:00 -07:00
Victor Zverovich
e719c43cc6
Apply coding conventions
2025-08-17 10:59:16 -07:00
Victor Zverovich
8a8ff6177c
Remove deprecated and undocumented has_formatter
2025-08-17 10:52:45 -07:00
Victor Zverovich
5b99b334f0
Remove redundant else
2025-08-17 10:03:01 -07:00
Mattias Ljungström
9588458917
Silence unreachable code warnings in MSVC when FMT_USE_EXCEPTIONS are disabled. ( #4515 )
2025-08-17 09:35:28 -07:00
Victor Zverovich
7ffc3ca15b
Minor cleanup
2025-08-16 12:20:02 -07:00
Victor Zverovich
e9ddc97b9a
Remove unnecesary constexpr and inline more
2025-08-10 08:40:35 -07:00
Murat Toprak
0d145936ec
Handle allocator propagation in basic_memory_buffer::move, Fix #4487 ( #4490 )
...
* Handle allocator propagation in basic_memory_buffer::move
Update `basic_memory_buffer::move` to respect `propagate_on_container_move_assignment`allocator trait.
If the allocator should not propagate and differs from the target's allocator,
fallback to copying the buffer instead of transferring ownership.
This avoids potential allocator mismatch issues and ensures exception safety.
* Add test cases for the updated move ctor
- Added two test cases `move_ctor_inline_buffer_non_propagating` and `move_ctor_dynamic_buffer_non_propagating`
- Added `PropageteOnMove` template parameter to `allocator_ref` class to be compatible with the old test cases
- `allocator_ref` now implements `!=` and `==` operators
2025-08-09 08:14:15 -07:00
Victor Chernyakin
8f3a965186
Refactor ansi_color_escape to track size instead of using a null terminator ( #4511 )
2025-08-09 08:08:41 -07:00
Victor Zverovich
add164f6b3
Optimize the default FP formatting
2025-08-03 12:46:38 -07:00
Victor Zverovich
23059d558e
Fix exponent size computation
2025-08-03 10:00:24 -07:00
Victor Zverovich
505cc3d0c2
Simplify remove_trailing_zeros
2025-08-03 08:45:48 -07:00
Victor Zverovich
b8a502615d
Revert "Optimize the default FP formatting"
...
This reverts commit 93f03953af6b0268e1a29bb5b23d50f72b87a151.
2025-08-03 07:40:13 -07:00
Victor Zverovich
93f03953af
Optimize the default FP formatting
2025-07-27 08:56:07 -07:00
Dominic Pöschko
35dcc58263
fix buffer overflow on all emphasis flags set ( #4498 )
2025-07-20 10:43:33 -07:00
Catherine
553ec11ec0
Make compatible with WASI ( #4497 )
...
WASI is a POSIX subset that doesn't have `dup`, `dup2`, or `pipe` system calls.
Fixes #4496 .
2025-07-14 15:51:04 -07:00
Victor Zverovich
7d29ebe4af
Minor cleanup
2025-07-12 07:09:38 -07:00
anonymous
20c8fdad06
Fix import std in clang++ ( #4488 )
...
fix module-compilation error when defined `FMT_IMPORT_STD`
2025-07-07 11:47:48 -07:00
Victor Zverovich
300ce75ca6
Handle invalid glibc FILE buffer
2025-07-06 11:17:16 -07:00
Victor Chernyakin
2fa3e1a1bb
Fix interaction between debug presentation, precision, and width for strings ( #4478 )
2025-07-04 07:33:47 -07:00
Miuna
27c5aab349
Fix unwanted char promotion in decimal writer with wchar_t ( #4483 )
2025-07-01 07:03:57 -07:00
Miuna
353bd895a2
Add FMT_EXPORT on ranges.h customization points ( #4476 )
2025-06-24 10:30:44 -07:00
Tomek-Stolarczyk
953cffa701
Replace memset with constexpr fill_n in bigint::align ( #4471 )
...
Use fill_n in place of memset in bigint::align to respect constexpr.
2025-06-23 16:18:16 -07:00
Vladislav Shchapov
571c02d475
Add xchar support for std::byte formatter ( #4480 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-06-23 14:02:11 -07:00
Remy Jette
f4345467fc
Fix compilation on clang-21 / libc++-21 ( #4477 )
...
`<cstdlib>` was not being included, so malloc and free were only declared
via transitive includes. Some includes changed in the latest libc++-21
build which broke fmt.
Also changed `malloc`/`free` to `std::malloc` and `std::free`, as
putting those symbols in the global namespace is optional for the
implementation when including `<cstdlib>`.
2025-06-21 07:28:14 -07:00
Victor Chernyakin
1ef8348070
Properly constrain detail::copy optimization ( #4474 )
2025-06-21 06:59:35 -07:00
Victor Chernyakin
067bc479b4
Avoid redundant work when processing UTF-8 strings ( #4475 )
2025-06-20 06:39:06 -07:00
Mikhail Svetkin
5860688d7e
Enable constexpr support for fmt::format (fmtlib#3403) ( #4456 )
2025-06-07 07:16:49 -07:00
Victor Zverovich
46be88bc1e
Cleanup FP formatting
2025-06-01 09:15:20 -07:00
Thomas Khyn
cc88914904
Export fmt::dynamic_format_arg_store in fmt module ( #4459 )
2025-06-01 08:50:14 -07:00
Victor Zverovich
fc0c76a075
Handle large precision
2025-06-01 08:49:41 -07:00
Victor Zverovich
6d51c78c1e
Cleanup FP formatting
2025-05-30 16:45:21 -07:00
Victor Zverovich
0f4e9d0bde
Cleanup FP formatting
2025-05-30 16:05:57 -07:00
Victor Zverovich
d9d50495ac
Optimize the default FP formatting
2025-05-30 13:45:04 -07:00
Victor Zverovich
befbc5fdb8
Fix ADL lookup for memory_buffer
2025-05-26 09:44:35 -07:00
Victor Zverovich
8aa1d6a9fb
Minor cleanup
2025-05-25 10:14:24 -07:00
Nikhil
6d79757a38
Interpret precision as display width ( #4443 )
2025-05-25 08:42:47 -07:00
Victor Zverovich
1ff0b7f5e1
Cleanup warning suppression
2025-05-24 09:37:01 -07:00
Edoardo Morandi
ea985e84f8
Remove some implicit conversions ( #4447 )
...
* fix: avoid an implicit cast
The "1" used for the bitshift is treated as int, and this causes an
implicit conversion to `UInt` when performing the logical and.
Explicitly casting the number to `UInt` avoids the warning.
* fix: avoid implicit conversions for indices
Some indices in `include/fmt/base.h` are expressed as `int` types, which
causes an implicit conversion to a `size_t` when they are actually used
as index. Explicitly casting the value avoids the warning.
* fix: avoid an implicit conversion using size_t
The number of bits is used to express the size of a buffer. Using an
`int` causes an implicit conversion warning, let's use a `size_t` which
is the right type for the job.
2025-05-24 09:22:03 -07:00
Andreas Reischuck
f7033da09e
Avoid include locale inline if C++20 modules are enabled ( #4451 )
...
MSVC hints with:
```
fmt\include\fmt\format-inl.h(26): warning C5244: '#include <locale>' in the purview of module 'fmt' appears erroneous. Consider moving that directive before the module declaration, or replace the textual inclusion with 'import <locale>;'.
```
Then fails the build with `type redefinition`.
2025-05-21 17:18:18 -07:00
Tobias Schlüter
b723c021df
Give useful error when misusing fmt::ptr. ( #4453 )
...
static_assert(bla, "") prints an empty message but not the condition with at least MSVC. Add an informative message.
2025-05-20 12:21:06 -07:00
Kefu Chai
ab161a71c6
Fix some typos in comments ( #4448 )
...
- s/instantion/instantiation/
- s/uninitalized/uninitialized/
- s/costexpr/constexpr/
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2025-05-15 06:28:14 -07:00
Victor Chernyakin
b5266fd3b9
Remove some redundant consts ( #4445 )
...
`constexpr` variables are implicitly `const`.
2025-05-12 10:41:58 -07:00
Victor Zverovich
07885271a1
Minor cleanup
2025-05-11 07:54:23 -07:00
Jeremy Rifkin
4999416e5c
Fix reference_wrapper ambiguity with format_as ( #4434 )
2025-05-10 11:15:45 -07:00
Victor Zverovich
d5c33e4f45
Make template parameter order consistent
2025-05-04 15:23:48 -07:00
Victor Zverovich
a2225f2887
Remove unused include
2025-05-04 15:16:38 -07:00
Victor Zverovich
b43b2f9537
Cleanup standard formatters
2025-05-04 13:04:06 -07:00
Victor Zverovich
1312b4a162
Cleanup standard formatters
2025-05-04 12:37:28 -07:00
Victor Zverovich
4404dc05dd
Consolidate implementation details
2025-05-04 10:48:47 -07:00
Victor Zverovich
7bb6fcb325
Bump version
2025-05-04 09:36:07 -07:00
Victor Zverovich
542ea7c40b
Clarify that Formatter parameter is deprecated
2025-05-03 10:28:46 -07:00
Victor Zverovich
7fdd6846ba
Bump version
2025-05-03 09:02:35 -07:00
Victor Zverovich
448929d491
Update and apply clang-format
2025-05-03 07:29:31 -07:00
Victor Zverovich
0ed2a65a8a
Clarify why we use __builtin_strlen instead of strlen
2025-04-27 11:08:27 -07:00
Victor Zverovich
2680831231
Cleanun string_view
2025-04-27 09:34:38 -07:00
Barry Revzin
8978ab09b2
Avoiding __builtin_strlen ( #4429 )
2025-04-27 09:32:10 -07:00
Victor Zverovich
c936e2e44e
Implement debug format for error_code
2025-04-27 09:06:17 -07:00
Victor Zverovich
a7d7b894cd
Implement the s specifier for error_code
2025-04-27 08:51:18 -07:00
Victor Zverovich
e98155a6fb
Remove redundant specializations
2025-04-26 10:41:03 -07:00
Victor Zverovich
41b3bed4d2
Clarify why we don't use qualified names
2025-04-26 10:12:06 -07:00
Victor Zverovich
9db5e4df22
Don't specialize std::is_floating_point
2025-04-26 08:17:05 -07:00
Victor Zverovich
906eaf2ddb
Make specifier order consistent
2025-04-25 12:10:21 -07:00
LocalSpook
c709138359
Add support for incomplete types
2025-04-20 10:16:11 -07:00
Victor Zverovich
0a917ee2f5
Minor comment tweak
2025-04-19 10:18:01 -07:00
Victor Zverovich
8061c7c8c4
Cleanup duration formatter
2025-04-19 10:08:24 -07:00
Victor Zverovich
7b59df4119
Remove redundant member
2025-04-19 10:08:23 -07:00
hirohira
b8192d233a
Fix build error with MSVC v141 ( #4413 )
2025-04-15 08:21:38 -07:00
Victor Zverovich
e814b5fabf
Reduce template parametrization
2025-04-13 10:17:17 -07:00
Victor Zverovich
ed0d216f7e
Fix localization and formatting of timezone names
2025-04-13 09:52:59 -07:00
Victor Zverovich
bd9554a29e
Fix formatting of timezone names
2025-04-13 08:52:26 -07:00
Victor Zverovich
f086dc0d27
Fix timezone handling in tm
2025-04-13 08:23:40 -07:00
Victor Zverovich
f10b6dd816
Improve chrono formatting
2025-04-12 09:59:06 -07:00
Victor Zverovich
b28214487d
Fix handling of %Z
2025-04-12 08:51:22 -07:00
Victor Zverovich
da776c9a66
Test timezone
2025-04-12 07:53:58 -07:00
Mattes D
64db979e38
Added a missing FMT_STRING in fmt::println() ( #4407 )
2025-04-07 15:35:55 -07:00
Victor Zverovich
5f2e61fdd5
Cleanup chrono detail
2025-04-06 09:54:47 -07:00
Victor Zverovich
b3d45e1d3f
Remove fmt_detail
2025-04-06 09:24:20 -07:00
Victor Zverovich
5199e0f885
Fix a flush issue on libstdc++
2025-03-30 10:54:14 -07:00
Victor Zverovich
e1ab383361
Report an error when timezone is not available
2025-03-29 09:10:00 -07:00
Victor Zverovich
f53055efe0
Revert "Workaround an ABI issue in spdlog"
...
This reverts commit 784eac839df77df1852dc1c50b17b76c3aec8f4a.
2025-03-29 07:48:20 -07:00
Victor Zverovich
443a8ef342
Deprecate fmt::localtime
2025-03-23 10:46:02 -07:00
Victor Zverovich
3607e92dc9
Bump version
2025-03-23 10:44:46 -07:00
Victor Zverovich
43e31614cc
Test ambiguous time
2025-03-23 10:34:37 -07:00
Victor Zverovich
9d6e24c64e
Fix handling of long with FMT_BUILTIN_TYPES=0
2025-03-22 07:52:54 -07:00
Victor Zverovich
784eac839d
Workaround an ABI issue in spdlog
2025-03-22 07:01:45 -07:00
Victor Zverovich
6fdf225a32
Always inline value ctors in optimized gcc mode only
...
This reverts commit 332da79bf37d06bb549810fd9420fd47407ebd89.
2025-03-16 10:03:53 -07:00
Victor Zverovich
332da79bf3
Always inline value ctors
2025-03-16 09:31:52 -07:00