Commit Graph

723 Commits

Author SHA1 Message Date
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 Zverovich
300ce75ca6 Handle invalid glibc FILE buffer 2025-07-06 11:17:16 -07:00
Victor Zverovich
6a3b40524c Use actual example code and move safe_fopen to os-test 2025-07-04 09:50:55 -07:00
Victor Chernyakin
2fa3e1a1bb Fix interaction between debug presentation, precision, and width for strings (#4478) 2025-07-04 07:33:47 -07:00
Victor Zverovich
fc0c76a075 Handle large precision 2025-06-01 08:49:41 -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 Chernyakin
b5266fd3b9 Remove some redundant consts (#4445)
`constexpr` variables are implicitly `const`.
2025-05-12 10:41:58 -07:00
Victor Zverovich
448929d491 Update and apply clang-format 2025-05-03 07:29:31 -07:00
Victor Zverovich
c81cbed2b7 Simplify test 2025-04-23 12:32:26 -07:00
LocalSpook
c709138359 Add support for incomplete types 2025-04-20 10:16:11 -07:00
Victor Zverovich
2f58430573 Move buffering tests to os-test 2025-03-30 09:38:40 -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 Zverovich
52eeeb52a6 Make exponent threshold depend on representation (#3649) 2025-01-26 12:10:48 -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
Victor Zverovich
a35389b3c2 Corrently handle buffer flush 2024-11-09 10:56:31 -08:00
Victor Zverovich
a197a994c5 Add member format_as for std 2024-09-20 08:49:49 -07:00
Victor Zverovich
1782a6eac0 Rename pragma macros 2024-09-12 19:20:32 -07:00
Victor Zverovich
689ec7a087 Cleanup 2024-09-11 16:05:34 -07:00
Victor Zverovich
1bde49e545 Remove FMT_USE_USER_LITERALS 2024-09-11 11:27:27 -07:00
Victor Zverovich
f5a16a484b Cleanup 2024-09-06 12:41:53 -07:00
Victor Zverovich
894b71da85 Fix handling of _BitInt 2024-09-03 11:32:31 -07:00
Victor Zverovich
60740b7c24 Cleanup base API 2024-09-01 19:35:00 -07:00
Victor Zverovich
6797f0c39a Cleanup compile-time checks 2024-08-31 11:26:27 -07:00
Victor Zverovich
377cf203e3 Add opt out for built-in types 2024-08-29 11:21:29 -07:00
Justin Riddell
5a0a37340c Add support for _BitInt on clang (#4072)
Issue #4007
Make _BitInt up to 128bits formattable
Note, libstdc++ is_signed doesn't work with _BitInt (so use own)
2024-08-28 18:57:52 -07:00
Victor Zverovich
62382e3650 Test full exponent range 2024-08-18 06:47:04 -07:00
Victor Zverovich
94b8bc8eae Add an experimental writer API 2024-08-17 09:54:09 -07:00
Victor Zverovich
928a07bb04 Simplify handling of dynamic specs 2024-08-04 09:09:01 -07:00
Victor Zverovich
7891699737 Simplify handling of dynamic specs 2024-08-04 08:47:07 -07:00
Vladislav Shchapov
aff640c32f Make fmt::appender implement std::output_iterator concept (#4093)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-07-29 09:18:20 -07:00
Victor Zverovich
a80d668a52 Diagnose invalid precision 2024-07-27 10:41:54 -07:00
Victor Zverovich
de6ed8df8b Test alignment 2024-07-26 12:09:47 -07:00
Victor Zverovich
de684ef776 Make appender compatible with fill 2024-07-19 15:21:57 -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
7a8b54a0ef Don't confuse Glib::ustring with std::string 2024-07-06 13:27:06 -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
5af88653eb Cleanup 2024-03-22 13:46:03 +09: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
3bc6cc1e63 Protect against locking formatters 2024-03-02 17:23:02 -08:00
Victor Zverovich
06311ed1ce Fix fixed rounding around zero in Dragon 2024-02-03 10:13:58 -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
4c5b4af04d Improve name argument validation 2024-01-19 16:13:43 -08:00