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
Victor Zverovich
7b273fbb54
Minor cleanup
2025-03-16 08:58:44 -07:00
Victor Zverovich
dd780fde44
Add clang-3.4
2025-03-15 12:22:10 -07:00
Dean Glazeski
37e6474718
Fix dynamic named arg format spec handling ( #4361 )
...
When dealing with dynamic named format args, need to account for
nested named args when skipping the content of the replacement.
Fixes #4360
2025-03-15 09:34:11 -07:00
Victor Zverovich
9212ff6ca1
Apply coding conventions and use constexpr
2025-03-02 09:03:06 -08:00
Dean Glazeski
864bdf9638
Report error on duplicate named arg names ( #4367 )
2025-03-02 07:47:03 -08:00
Victor Chernyakin
b776cf66fc
Optimize text_style using bit packing ( #4363 )
2025-03-01 11:18:19 -08:00
Thomas Khyn
577fd3be88
Fix TU-local entity exposition error in GCC 15
2025-02-26 11:14:15 -08:00
Thomas Khyn
faac8b1fa9
Remove exports in std.h
...
This fixes 'declaration of partial specialization in unbraced export-declaration' errors in GCC 15
2025-02-26 11:14:15 -08:00
Victor Zverovich
4e5aafbf43
Bump version
2025-02-25 17:20:47 -08:00
Victor Zverovich
3401ce2be2
Fix ABI compatibility
2025-02-25 13:32:24 -08:00
Dean
7f7695524a
Fix conflict with std::ignore ( #4356 )
...
In situations where `using namespace std;` is used, compiler warnings
can be generated because of local variables named `ignore`. This renames
those variables to something else to address the name conflict.
2025-02-19 23:08:21 -08:00
Victor Chernyakin
94ab51cb8c
Simplify implementation of operator""_cf ( #4349 )
2025-02-14 02:02:09 -08:00
Victor Zverovich
0ca42e836e
Workaround an MSVC v140 bug
2025-02-13 14:12:16 +01:00
Markus Kitsinger
f2cec917da
Move is_compiled_string to public API ( #4342 )
2025-02-04 16:20:27 -08:00
Sergiu Deitsch
d5b866e242
fix gcc 8.3 compile errors ( #4336 )
2025-02-03 08:51:58 -08:00
LocalSpook
c9267da4df
Fix typo in FMT_HAS_BUILTIN check
2025-01-31 08:42:19 -08:00
Victor Zverovich
52eeeb52a6
Make exponent threshold depend on representation ( #3649 )
2025-01-26 12:10:48 -08:00
timsong-cpp
cb6fdf2191
Restore constraint on map formatter ( #4326 )
...
* Restore constraint on map formatter
* Remove unnecessary double parens
2025-01-25 08:31:07 -08:00
timsong-cpp
f841ae61e2
Fix #4303 : avoid instantiating formatter<const T> ( #4325 )
2025-01-24 10:53:10 -08:00
Matt
a3d05d70ce
Silence a constexpr warning when compiling with MSVC and /W4 ( #4322 )
2025-01-23 12:11:23 -08:00
Victor Zverovich
41539c29f3
Workaround a bug in gcc 6 ( #4318 )
2025-01-22 11:12:41 -08:00
Victor Zverovich
9ff9c695db
Bump version
2025-01-18 10:28:46 -08:00
Victor Zverovich
5f0572acdc
Workaround a compilation error on gcc 9.4
2025-01-18 09:01:00 -08:00
Vladislav Shchapov
898d438571
Fix formatting into std::ostreambuf_iterator using a compiled format ( #4312 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-18 07:16:06 -08:00
Aaron Bishop
937b7c5c10
Add args() accessor back to fmt::format_context ( #4310 )
...
Add args() accessor back to fmt::format_context
Add test that would fail to compile if you can't create a fmt::format_context from another fmt::format_context
2025-01-17 10:28:34 -08:00
Victor Zverovich
01914f0389
Reduce size of basic_specs
2025-01-12 09:18:11 -08:00
Victor Zverovich
c43da35701
Workaround an ICE when using modules with gcc 14.2 and earlier
2025-01-12 08:57:43 -08:00
Victor Zverovich
b0b3dc5ff9
Bump version
2025-01-12 08:13:56 -08:00
Victor Zverovich
586ea06f02
Rename set_fill to copy_fill_from
2025-01-11 09:22:15 -08:00
Marcel Breyer
bfbdc2be9a
Add parameter to the fallback to_sys function.
2025-01-11 08:48:20 -08:00
Victor Zverovich
21aa0956d4
Restore ABI compatibility
2025-01-10 17:36:09 -08:00
Edoardo Lolletti
3f864a4505
Address MSVC C4127 warning when formatting non unicode tm ( #4299 )
...
Use `const_check` to silence visual studio's W4 level diagnostic regarding conditional expressions being constants, addresses https://github.com/fmtlib/fmt/issues/4294
2025-01-08 14:21:48 -08:00
Vladislav Shchapov
2c3a5698ef
Simplify a copying the fill from basic_specs
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-05 09:33:05 -08:00
Victor Zverovich
fc1b0f3486
Clarify use of FMT_THROW in a comment
2025-01-05 07:31:19 -10:00
GamesTrap
1d066890c7
Resolve C4702 unreachable code warnings
2025-01-03 16:39:11 -08:00
Vladislav Shchapov
dad3237514
Fix a bug when copying the fill from basic_specs
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-03 09:16:21 -08:00
Vladislav Shchapov
880e1494dc
Improve xchar support for std::bitset formatter
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-03 09:16:21 -08:00
Victor Zverovich
e9ec4fdc88
Bump version
2024-12-27 08:41:06 -08:00
Victor Zverovich
feb72126b4
Readd FMT_NO_UNIQUE_ADDRESS
2024-12-26 13:54:06 -08:00
Victor Zverovich
3e04222d53
Restore ABI compatibility with 11.0.2
2024-12-26 10:45:15 -08:00
Victor Zverovich
11742a09c7
Clarify that format_string should be used instead of fstring
2024-12-26 09:39:01 -08:00
Victor Zverovich
faf3f84085
Bump version
2024-12-25 08:18:51 -08:00
Victor Zverovich
a3ef285aec
Always inline const_check to improve debug codegen in clang
2024-12-24 12:54:44 -08:00
YexuanXiao
86dae01c23
Fix compatibility with older versions of VS ( #4271 )
2024-12-23 07:26:11 -08:00
YexuanXiao
7c3d0152e5
Use the _MSVC_STL_UPDATE macro to detect STL ( #4267 )
2024-12-19 06:47:13 -08:00
Hannes Harnisch
7c50da5385
Allow getting size of dynamic format arg store ( #4270 )
2024-12-18 19:54:35 -08:00
Sascha Hestermann
873670ba3f
Make parameter basic_memory_buffer<char, SIZE>& buf of to_string const
2024-12-11 12:19:20 -08:00
Vladislav Shchapov
141380172f
Allow disabling <filesystem> by define FMT_CPP_LIB_FILESYSTEM=0 ( #4259 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-12-09 07:13:24 -08:00
Alex Hirsch
9600fee020
Include <filesystem> only if FMT_CPP_LIB_FILESYSTEM is set ( #4258 )
...
This change results out of necessity since the Nintendo Switch console
SDK does not support `std::filesystem`. The SDK still provides the
`<filesystem>` header, but with an `#error` directive, effectively
breaking any build that includes `<filesystem>`
Because `<filesystem>` is present, `FMT_HAS_INCLUDE` is insufficient
here. With this change and `FMT_CPP_LIB_FILESYSTEM` in place, one can
define `FMT_CPP_LIB_FILESYSTEM=0` to work around this issue.
This assumes that `<filesystem>` can be included (without warnings) if
`FMT_CPP_LIB_FILESYSTEM` is set. If this is not the case, fmt would be
broken even before this change as `std::filesystem::path` is used
without the accompanying header.
2024-12-07 06:45:54 -08:00
jsirpoma
385c01dc7b
Allow bit_cast to work for 80bit long double ( #4246 )
2024-11-29 01:25:21 -08:00
Justin Riddell
536cabd562
Export all range join overloads ( #4239 )
2024-11-15 13:01:59 -08:00
Victor Zverovich
bfd95392c7
Remove MSVC 2015 workaround
2024-11-15 08:19:01 -08:00
Justin Riddell
9ced61bca4
Replace std::forward for clang-tidy ( #4236 )
...
Should fix #4231
2024-11-14 09:06:30 -08:00
Victor Zverovich
a6c45dfea8
Fix modular build
2024-11-10 09:06:50 -08:00
Victor Zverovich
a35389b3c2
Corrently handle buffer flush
2024-11-09 10:56:31 -08:00
Vladislav Shchapov
5a3576acc8
Implement fmt::join for tuple-like objects ( #4230 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-11-09 08:28:46 -08:00
Vladislav Shchapov
542600013f
Suppress MSVC warnings "C4127: conditional expression is constant" by used const_check ( #4233 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-11-09 07:43:46 -08:00
Victor Zverovich
720da57bab
Remove reference to unused intrinsic
2024-11-03 17:18:33 -08:00
Victor Zverovich
680db66c3a
Explicitly export symbols from detail
2024-11-03 09:13:17 -08:00
Victor Zverovich
56ce41ef63
Remove initializer_list dependency
2024-11-03 08:26:25 -08:00
Victor Zverovich
cf50e4d6a4
Fix const[expr] in context API
2024-11-03 07:25:52 -08:00
Victor Zverovich
6580d7b808
Cleanup the format API
2024-11-03 06:57:36 -08:00
Victor Zverovich
7e73566ce7
Minor cleanup
2024-11-02 11:24:24 -07:00
Victor Zverovich
8523dba2dc
Make constexpr precede explicit consistently
2024-11-02 11:03:03 -07:00
Victor Zverovich
e3d3b24fc1
Minor cleanup
2024-11-02 10:46:58 -07:00
Victor Zverovich
1521bba701
Use consistent types for argument count
2024-11-02 08:08:36 -07:00
Victor Zverovich
4b8e2838f0
More cleanup
2024-10-27 10:56:52 -07:00
Victor Zverovich
7d4662f7ab
Remove FMT_BUILTIN_CTZ
2024-10-27 10:22:43 -07:00
Victor Zverovich
27110bc474
Minor cleanup
2024-10-27 09:44:25 -07:00
Sergey
68f3153762
Fix narrowing conversion warning in struct fstring ( #4210 )
...
Warning C4267: 'initializing': conversion from 'size_t' to 'const int', possible loss of data.
2024-10-27 06:41:20 -07:00
Vladislav Shchapov
168df9a064
Implement fmt::format_to into std::vector<char> ( #4211 )
...
* Implement fmt::format_to into std::vector<char>
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
* Move get_container to the trait
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
---------
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-10-26 09:23:59 -07:00
Sergey
4daa3d591f
Fix error: cannot use 'try' with exceptions disabled in Win LLVM Clang ( #4208 )
...
Fixes #4207 .
LLVM Clang on Windows does not define `__GNUC__`. The preprocessor falls
to `#elif FMT_MSC_VERSION && !_HAS_EXCEPTIONS` with `_HAS_EXCEPTIONS 1`
defined in vcruntime.h:104.
2024-10-23 10:43:55 -07:00
Victor Zverovich
2b6a786e35
Use standard context in print
2024-10-20 09:08:24 -07:00
Victor Zverovich
a16ff5787b
Add support for code units > 0xFFFF in fill
2024-10-20 07:59:58 -07:00
Victor Zverovich
601be1cbe7
Add support for code units > 0xFFFF in fill
2024-10-19 08:15:50 -07:00
Vinay Yadav
58c185b634
Changing type of data_ to size_t to avoid compilation warnings ( #4200 )
...
Changing type data_ to size_t because
1. If lib is cross-compiled for win32 using MXE environment it cause
compilation warning -Wconversion on line 730 as sizeof(unsigned long)
= 4 and sizeof(size_t) = 8
2. When lib is compiled on Unix like compiler generate warning
-Wuseless-cast if static_cast is used to fix issue in 1
2024-10-19 06:59:21 -07:00
Yi Kong
4046f97278
Fix -Wmissing-noreturn warning ( #4194 )
...
Fixes warning reported by top of trunk Clang:
include/fmt/chrono.h:447:36: error: function 'throw_duration_error' could be declared with attribute 'noreturn'
2024-10-10 08:59:56 -07:00
Victor Zverovich
6bdc12a199
detail_exported -> detail
2024-10-09 11:04:55 -07:00
Victor Zverovich
786a4b0968
Cleanup fixed_string
2024-10-09 08:42:49 -07:00
Haowei
22701d5f63
Address build failures when using Tip-of-Tree clang. ( #4187 )
...
When using ToT clang to build fmtlib, it complains 'sv' is not
initialized by a constant expression. This patch addresses this
issue.
2024-10-04 06:45:29 -07:00
Casey Carter
e62c41ffb0
Conform std::iterator_traits<fmt::appender> to [iterator.traits]/1 ( #4185 )
...
* Conform `std::iterator_traits<fmt::appender>` to [iterator.traits]/1
> In addition, the types
> ```c++
> iterator_traits<I>::pointer
> iterator_traits<I>::reference
> ```
> shall be defined as the iterator’s pointer and reference types; that is, for an iterator object `a` of class type, the same type as `decltype(a.operator->())` and `decltype(*a)`, respectively. The type `iterator_traits<I>::pointer` shall be void for an iterator of class type `I` that does not support `operator->`. Additionally, in the case of an output iterator, the types
> ```c++
> iterator_traits<I>::value_type
> iterator_traits<I>::difference_type
> iterator_traits<I>::reference
> ```
> may be defined as `void`.
* Remove unnecessary member types from basic_appender
This reverts commit 1accf6c0a043fb445cbbfeefdbc1f91a08e3099f.
* Address clang-format issue
2024-10-03 09:05:14 -07:00
Francesco Cavaliere
18792893d8
Silencing Wextra-semi warning ( #4188 )
2024-10-03 09:00:55 -07:00
Victor Zverovich
c95722ad62
Improve naming consistency
2024-09-29 18:17:44 -07:00
Victor Zverovich
db06b0df87
Use countl_zero in bigint
2024-09-29 17:11:22 -07:00
Victor Zverovich
b9ec48d9ca
Cleanup bigint
2024-09-29 12:03:07 -07:00
Victor Zverovich
3faf6f181e
Add min_of/max_of
2024-09-29 10:24:39 -07:00
Victor Zverovich
d64b100a30
Relax constexpr
2024-09-29 10:04:57 -07:00
Victor Zverovich
ff9ee0461a
Fix handling FMT_BUILTIN_TYPES
2024-09-28 09:23:48 -07:00
Victor Zverovich
cacc3108c5
Don't assume repeated evaluation of string literal produce the same pointer
...
Patch by @zygoloid (#4177 ).
2024-09-28 08:09:33 -07:00
Justin Riddell
fade652ade
Require clang >=15 for _BitInt support ( #4176 )
...
For appleclang, fixes issue #4173
2024-09-26 16:10:51 -07:00
Cameron Angus
96dca569a1
Module linkage fixes for shared build ( #4169 )
...
* Mark some in-class defined member functions as explicitly inline/constexpr, to avoid missing external symbols when using fmt module with shared build due to modules not defaulting to implicit inline.
* Switch constexpr to inline for context::arg(string_view).
NOTE: Looks as if basic_format_args::get(string_view) could probably be made constexpr instead, but sticking with minimal change approach.
* Work around apparent non-conformance of older MSVC compilers.
* Switch format_int::str() from constexpr to inline to satisfy libstdc++ std::string constexpr limitations.
* Replace usages of macros for constexpr/inline with keywords.
* Fix for locations requiring C++14 constexpr.
* Further minor constexpr tweaks.
* Apply clang format
2024-09-26 07:53:55 -07:00
Victor Zverovich
891c9a73ae
Cleanup format API
2024-09-22 15:52:55 -07:00
Victor Zverovich
9282222b7d
Export more
2024-09-22 15:10:58 -07:00
Victor Zverovich
ff92223549
Simplify locale handling
2024-09-22 10:21:19 -07:00
Victor Zverovich
80c4d42c66
Cleanup format.h
2024-09-22 08:20:26 -07:00
Victor Zverovich
3b70966df5
Add width and alignment support to error_code
2024-09-21 07:58:03 -07:00
Victor Zverovich
05226c4bd9
Remove type_identity
2024-09-20 19:13:09 -07:00
Victor Zverovich
c283b458a5
Cleanup format.h
2024-09-20 19:00:23 -07:00
Paulo Assis
fe79932c26
Fix conversion warning on chrono.h ( #4170 )
...
* Fix conversion warning on chrono.h
warning: conversion from 'time_t' {aka 'long long int'} to 'long int' may change value [-Wconversion]
* Changing write_utc_offset to accept a long long instead of the static_cast as requested..
2024-09-20 16:47:27 -07:00
Victor Zverovich
23fcf1942a
Apply clang-format
2024-09-20 09:34:10 -07:00
Victor Zverovich
3f296e3d4a
Workaround clang-format nonsense
2024-09-20 09:05:59 -07:00
Victor Zverovich
a197a994c5
Add member format_as for std
2024-09-20 08:49:49 -07:00
Victor Zverovich
6d43c755bc
Fix a typo
2024-09-19 10:49:11 -07:00
Vladislav Shchapov
1f87b1c58d
Use fmt::formatter specialization for std::reference_wrapper to avoid undefined behavior ( #4164 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-09-19 10:34:33 -07:00
Khanh H
ed8f8be70d
More chrono padding ( #4161 )
...
* Add padding modifier to day of year, duration's remains unpadded
* Add padding modifier for %m, %Y
2024-09-18 09:27:45 -07:00
Victor Zverovich
55a0a9cd62
Cleanup pragma detection
2024-09-17 19:46:30 -07:00
Victor Zverovich
5c926d9ff9
Remove FMT_UNCHECKED_ITERATOR
2024-09-17 19:40:29 -07:00
Victor Zverovich
8b024662d4
Remove unnecessary inheritance
2024-09-17 19:31:55 -07:00
Victor Zverovich
2f1424be90
Simplify handling of arrays
2024-09-17 19:05:43 -07:00
Victor Zverovich
239aa6911b
Remove unwrap_named_arg
2024-09-16 20:46:47 -07:00
Victor Zverovich
497df6db61
Remove formattable
2024-09-16 20:32:27 -07:00
Victor Zverovich
a25e594f6a
Remove range_mapper
2024-09-16 20:24:30 -07:00
Victor Zverovich
503dff93ec
Simplify has_formatter
2024-09-16 20:15:54 -07:00