3160 Commits

Author SHA1 Message Date
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
Victor Zverovich
3374a95b50 Simplify has_formatter 2024-09-16 20:08:52 -07:00
Victor Zverovich
0e62e5dc7c Simplify has_formatter 2024-09-16 19:53:31 -07:00
Victor Zverovich
7ce013971b Sync value ctors and type mapper 2024-09-16 19:23:08 -07:00
Yedidya Feldblum
07e70151d5 format std::reference_wrapper 2024-09-16 19:05:18 -07:00
Victor Zverovich
4197727712 Improve handling of unformattable args 2024-09-16 18:52:18 -07:00
Victor Zverovich
527e98e3f8 Remove unformattable 2024-09-15 17:28:27 -07:00
Victor Zverovich
8a19b2db77 arg_mapper -> type_mapper 2024-09-15 17:09:49 -07:00
Victor Zverovich
e97df46ae1 Cleanup type mapping 2024-09-15 16:18:21 -07:00
Victor Zverovich
39f1e0903a Remove FMT_MAP_API 2024-09-15 10:52:36 -07:00
Victor Zverovich
d832830f60 Cleanup type mapping 2024-09-15 09:58:09 -07:00
Victor Zverovich
b329ff194f Always detect encoding on Windows 2024-09-15 08:52:33 -07:00
Victor Zverovich
2af403ce64 Simplify type mapping 2024-09-14 21:21:49 -07:00
Victor Zverovich
b7513b1d00 Simplify type mapping 2024-09-14 20:23:42 -07:00
Victor Zverovich
761d35f763 Cleanup format_as handling 2024-09-14 19:34:58 -07:00
Victor Zverovich
545dc4148a Add value ctor taking name_arg 2024-09-14 10:33:15 -07:00
Victor Zverovich
3f5e45dd33 Simplify handling of _BitInt 2024-09-14 10:15:36 -07:00
Victor Zverovich
2e3b6fbd9f Remove redundant check 2024-09-14 09:48:33 -07:00
Victor Zverovich
a0328e1f9f Improve error reporting 2024-09-14 09:39:41 -07:00
Victor Zverovich
de28ef5f86 Remove make_arg 2024-09-14 09:18:47 -07:00
Victor Zverovich
2d5e561a6b Cleanup argument handling 2024-09-14 08:56:04 -07:00
Victor Zverovich
50aac2ac92 Add reference to iterator_traits 2024-09-14 08:07:39 -07:00
Victor Zverovich
538d8777e5 Workaround a bug in libstdc++ 2024-09-14 07:49:10 -07:00
Victor Zverovich
0335312320 Demacrify UTF-8 check 2024-09-13 18:41:10 -07:00
Victor Zverovich
463fe65f17 Cleanup FMT_COMPILE_STRING 2024-09-12 19:57:50 -07:00
Victor Zverovich
1782a6eac0 Rename pragma macros 2024-09-12 19:20:32 -07:00
Victor Zverovich
b6a6ec7f1c FMT_EXCEPTIONS -> FMT_USE_EXCEPTIONS 2024-09-11 19:34:12 -07:00
Victor Zverovich
89999f1672 Simplify pragma 2024-09-11 18:52:56 -07:00
Victor Zverovich
b90b4bc981 Remove FMT_STATIC_THOUSANDS_SEPARATOR in favor of FMT_USE_LOCALE 2024-09-11 18:30:05 -07:00
Victor Zverovich
a1d6f9a973 Minor cleanup 2024-09-11 17:20:20 -07:00
Victor Zverovich
689ec7a087 Cleanup 2024-09-11 16:05:34 -07:00
Victor Zverovich
28143dc99d Cleanup chrono 2024-09-11 15:41:51 -07:00
Victor Zverovich
1bde49e545 Remove FMT_USE_USER_LITERALS 2024-09-11 11:27:27 -07:00
Victor Zverovich
ab8f9d5b08 Cleanup format API 2024-09-11 07:52:19 -07:00
Victor Zverovich
6f62db098a Cleanup format API 2024-09-11 07:26:11 -07:00
Victor Zverovich
ab44ee7521 Avoid shadowing 2024-09-11 07:05:45 -07:00
Victor Zverovich
0d4e7e3fee Remove old workaround 2024-09-11 06:17:47 -07:00
Victor Zverovich
8ee89546ff Remove old workaround 2024-09-10 21:06:25 -07:00
Victor Zverovich
a5deb96bf5 Update gcc version 2024-09-10 20:52:35 -07:00
Victor Zverovich
61a241f03f Cleanup 2024-09-10 20:24:57 -07:00
Victor Zverovich
ff82d8d2b5 Cleanup visit 2024-09-10 20:09:44 -07:00
Victor Zverovich
0cc20f5639 Remove iterator_t 2024-09-10 19:51:57 -07:00
Victor Zverovich
2ba6785d8f Remove unused type 2024-09-10 19:00:08 -07:00
Victor Zverovich
5644e7507c Remove unnecessary forwarding 2024-09-10 18:35:32 -07:00
Victor Zverovich
5345cfe6b3 Adjust clang-format 2024-09-10 18:24:35 -07:00
Victor Zverovich
3e9fdb3a1f Cleanup 2024-09-10 17:27:49 -07:00
Victor Zverovich
3ada4aed20 Optionally exclude Unicode data 2024-09-08 16:52:01 -07:00
Victor Zverovich
b37be85bf1 Optionally disable named arguments 2024-09-08 16:25:33 -07:00
Victor Zverovich
70643b2511 Don't use format_error if exceptions disabled 2024-09-08 15:56:36 -07:00
Victor Zverovich
967e2d177d Cleanup 2024-09-08 15:43:11 -07:00
Victor Zverovich
02c5d637c5 Cleanup 2024-09-08 11:13:44 -07:00
Victor Zverovich
047bf75c24 Cleanup 2024-09-08 10:00:25 -07:00
Victor Zverovich
2d3ba32e79 Improve debug codegen 2024-09-08 09:17:59 -07:00
Victor Zverovich
6c90b31fbd Improve debug codegen 2024-09-08 07:49:02 -07:00
Victor Zverovich
9408c2ae8c Readd support for FMT_BUILTIN_TYPES 2024-09-07 08:12:03 -07:00
Victor Zverovich
cc3ff1529d Cleanup 2024-09-06 17:05:48 -07:00
Victor Zverovich
158893b384 Cleanup 2024-09-06 13:39:03 -07:00
Victor Zverovich
f5a16a484b Cleanup 2024-09-06 12:41:53 -07:00
Victor Zverovich
cad876be4c Switch to vargs 2024-09-06 12:12:39 -07:00
Victor Zverovich
debf6f8285 Switch to vargs 2024-09-06 09:10:39 -07:00
Victor Zverovich
35f4fab4c4 Simplify value ctor 2024-09-06 08:59:43 -07:00
Victor Zverovich
ff8f324786 Minor cleanup 2024-09-06 08:47:24 -07:00
Victor Zverovich
bd48715d81 Simplify make_format_args 2024-09-06 08:15:33 -07:00
Victor Zverovich
57d6df62f7 Simplify make_format_args 2024-09-06 08:07:22 -07:00
Victor Zverovich
8ed4a9dcc1 Improve debug codegen 2024-09-06 07:51:22 -07:00
Victor Zverovich
f288f45e46 Prepare for arg_store unification 2024-09-05 19:17:18 -07:00
Victor Zverovich
f1e3016c13 Optimize debug codegen 2024-09-04 17:10:52 -07:00
Victor Zverovich
106dc8fd64 Reduce usage of type_identity 2024-09-04 16:23:51 -07:00