hotwatermorning
acaf83f40f
feat: enable building with gcc 4.8
2023-11-03 02:38:05 +09:00
hotwatermorning
05aa783779
feat: include xlocale.h only if exists
2023-11-03 02:38:05 +09:00
Carl Smedstad
e0d3e346d2
Wrap Char in array to avoid pointer arithmetic ( #3695 )
...
This resolves the following finding reported by Coverity Static Analysis
v2023.6.1 on line 1964 of fmt/include/fmt/format.h:
ptr_arith: Using &v as an array. This might corrupt or misinterpret
adjacent memory locations.
2023-10-31 14:05:46 -07:00
Victor Zverovich
19276d7325
Fix an inconsistentcy between to_string and format
2023-10-28 08:05:11 -07:00
Dimitrij Mijoski
2a2c6e676f
Fix flushing C++ iostreams before calling write_console() ( #3689 )
...
This change correctly implements https://wg21.link/P2539/ for both
C streams and C++ iostreams.
Fixes #3688 .
2023-10-25 13:13:31 -07:00
Roman Koshelev
3b7f58a8b3
add buffer flush before direct write
2023-10-24 16:02:37 -07:00
Victor Zverovich
d9063baf22
Fix perf regression in ostream::print
2023-10-15 08:23:36 -07:00
Victor Zverovich
f7542c5761
Apply clang-format
2023-10-14 06:52:43 -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
Victor Zverovich
72e883e163
Diagnose unsupported code unit types
2023-10-01 08:37:21 -07:00
Victor Zverovich
2dd4fa8742
Remove an ostream hack incompatible with libc++ 17
2023-09-26 12:42:37 -07:00
Victor Zverovich
06b20387ae
Optimize fractional_part_rounding_thresholds
2023-09-22 13:26:57 -07:00
Victor Zverovich
649f2460db
Apply clang-format
2023-09-22 09:07:43 -07:00
Greg Sjaardema
7529af8f99
Workaround intel bug ( #3652 )
...
* Workaround intel bug
Potential workaround / restructure for the intel bug that is the cause of #3645 .
Make the variable in the external struct instead an embedded static constexpr variable in the only function that uses the variable.
* Finish the proposed change -- remove struct accessor
* Refactor proposed intel fix.
Moved variable out of function to avoid specialization on Float. Made it a separate function that is called from format_float.
* Fix incorrect function name.
* Add missing inline.
2023-09-20 18:57:55 -07:00
Giel van Schijndel
a3a74fa7f3
fix: mark fmt::streamed() as constexpr ( #3650 )
...
Because it's just performing a very basic type conversion that can be
done at constexpr time.
My use case simultaneously creates a
`fmt::basic_format_string<some_type_conversion<Args...>>` instance and
performs `some_type_conversion<Args>(args)...`. `some_type_conversion`
optionally applies `fmt::streamed(arg)` to a subset of types. This needs
to be `constexpr` because `basic_format_string`'s constructor is
`consteval`.
2023-09-19 08:42:34 -07:00
Sascha Scandella
8ef4db4b96
Use datatype of underlying data ( #3647 )
2023-09-19 07:31:36 -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
Victor Zverovich
bfdf50d183
Minor cleanup
2023-09-16 08:16:59 -07:00
Chloe
571a9b7b26
Replace usage of C++17 library feature with C++11 ( #3638 )
2023-09-16 08:07:03 -07:00
Victor Zverovich
6c088be8ec
Cleanup handling of visibility
2023-09-16 07:40:08 -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
5bdce181f1
Mark styled_arg as a view to prevent lifetime issues
2023-09-09 08:16:45 -07:00
cyy
a4b7b24b7b
fix redundant redeclaration of ‘constexpr’ static data member ( #3630 )
2023-09-08 16:20:32 -07:00
Vinay Yadav
fac60bd4f5
Remove type cast as mxe(mingw32) compiler complains about useless-cast ( #3624 )
...
Remove type cast as mxe(mingw32) compiler complains about useless-cast
when FMT_PEDANTIC && FMT_WERROR options are enabled
"""
error: useless cast to type 'class fmt::v10::basic_format_args<fmt::v10::basic_format_context<fmt::v10::appender, char> >' [-Werror=useless-cast]
1449 | basic_format_args<buffer_context<char>>(args));
"""
2023-09-05 07:37:27 -07:00
Victor Zverovich
84e6661517
Workaround a gcc 6.4 issue
2023-09-04 11:23:14 -07:00
Victor Zverovich
e1fc481d65
Merge the copyright comment since there are many contributors
2023-09-04 06:54:07 -07:00
Victor Zverovich
28e2d3b640
Bump version
2023-08-26 08:29:50 -07:00
Alex Guteniev
9b74160817
atomic_flag formatting (#3594 )
2023-08-25 08:06:10 -07:00
Victor Zverovich
a21690bdfa
Coding conventions
2023-08-25 07:46:32 -07:00
Mathew Benson
e786824053
Refactor Improvement on umul128 function
...
- Removal of direct access to members of uint128_fallback and instead
create the values at the callsite and pass them via the constructor of
uint128_fallback on the return statement.
2023-08-25 13:21:52 +03:00
Mathew Benson
2b20d7be6f
Refactor To remove friend function private access
...
- Remove umul128 friend function from uint128_fallback class using
non-const member access functions instead.
2023-08-24 00:55:43 +03:00
Mathew Benson
1f38ebbdb1
Add condition to include friend function in win32
2023-08-22 23:07:04 +03:00
Mathew Benson
e418179694
Fix for FMT_MODULE not compiling on GCC
2023-08-22 21:11:53 +03:00
lukester1975
cc077a5e3b
Fix FMT_NO_UNIQUE_ADDRESS warning with clang-cl. ( #3600 )
...
See https://reviews.llvm.org/D110485 for info.
2023-08-20 10:21:50 -07:00
Mathew Benson
a992b3d1fc
Fix for Compilation Error When Using FMT_MODULE ( #3597 )
...
* FMT_EXPORT reorganization to fix compile error
- When compiling with FMT_MODULE, an error was being generated due to
use of FMT_EXPORT on a declaration within FMT_BEGIN_EXPORT and
FMT_END_EXPORT on `include/core.h`
- On `include/format.h` had to exclude the function vformat_to by ending
the export block just before it and beginning a new one after it.
2023-08-20 07:32:36 -07:00
YuHuanTin
bd868f3a51
Improve compatibility with GBK #3598 ( #3599 )
2023-08-19 08:13:20 -07:00
Victor Zverovich
bbb784fb1b
Fix a gcc error about partial specialization after instantiation
2023-08-19 07:22:40 -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
e1acd5f4d9
Bump version
2023-08-12 06:52:15 -07:00
Victor Zverovich
d424862319
Fix fixed precision handling during rounding in long double
2023-08-07 13:56:53 -07:00
Victor Zverovich
7a2f6ac210
Fix a comment
2023-08-07 09:33:45 -07:00
Victor Zverovich
ebb10347c4
Merge branch 'master' of github.com:fmtlib/fmt
2023-08-07 08:18:13 -07:00
Victor Zverovich
1005720169
Clarify that visit_format_arg is deprecated
2023-08-07 08:17:55 -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
razaqq
757564f5cd
add missing inline specifier ( #3552 )
2023-07-27 12:12:00 -07:00
Jürgen Hock
f4214ae8dd
Use the U literal for unsigned integer constants. ( #3549 )
...
Fix MSVC Error C2398 Element '1': conversion from 'int' to 'const uint32_t' requires a narrowing conversion.
2023-07-27 11:43:00 -07:00
Victor Zverovich
aecf80d304
Update a comment
2023-07-26 15:10:12 -07:00
Martin Jeřábek
503d49286d
expose detail::throw_format_error ( #3551 )
...
This enables to only #include <fmt/core.h> when defining formatters.
2023-07-26 13:21:38 -07:00
Ozomahtli
4f46cb82f3
Remove std::copy usage. ( #3550 )
2023-07-26 07:27:01 -07:00
Victor Zverovich
3dec65b7fd
Use replacement character in path
2023-07-22 09:07:28 -07:00
Dmitry Alexeev
dbabb305c3
Turn off error-producing NVCC workaround when using c++20 ( #3544 )
2023-07-21 11:29:15 -07:00
Victor Zverovich
ac0ab8eff3
Improve path formatter
2023-07-20 17:49:12 -07:00
Victor Zverovich
40f35d6f04
Cleanup std formatters
2023-07-20 16:26:27 -07:00
Victor Zverovich
31c2c5679e
Cleanup formatters
2023-07-20 15:57:43 -07:00
Victor Zverovich
b2728a3170
Improve path formatter
2023-07-20 15:25:35 -07:00
Victor Zverovich
77e0b0e228
Cleanup chrono formatter
2023-07-20 15:00:59 -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
Victor Zverovich
fb97cb2318
Suppress a bogus stringop-overflow warning
2023-07-20 09:53:54 -07:00
Victor Zverovich
dd5a9691f9
Clarify that data is not null-terminated
2023-07-20 07:36:30 -07:00
Kieran Clancy
72dc4491ea
Fix format_string_checker initialisation order ( #3542 )
...
Linter (clang-tidy) complains about uninitialised fields in
format_string_checker since types_ is passed to context_ before being
initialised. Fixes #3541 .
2023-07-20 07:30:45 -07:00
Victor Zverovich
9bea6ec04a
Don't use deprecated checked_array_iterator
2023-07-20 07:12:06 -07:00
Victor Zverovich
661b23edeb
Call parse on empty specs at compile time
2023-07-15 22:20:29 -07:00
Barry Revzin
de4705f84d
Trying to improve errors in the unformattable case ( #3478 )
2023-07-01 06:46:04 -07:00
Victor Zverovich
606f85f8b2
Workaround brain-damaged conversions
2023-06-26 16:06:24 -07:00
Tobias Schlüter
a331dbfb65
Fix type in assert message. ( #3508 )
...
Reviewed all strings in the file and found no other typos.
2023-06-26 11:35:29 -07:00
Vladislav Shchapov
dd17f89a16
Fix for issue #3492 ( #3493 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-06-16 02:20:40 -07:00
Victor Zverovich
1daae555b3
Optimize format string compilation
2023-06-15 10:28:23 +03:00
Victor Zverovich
6ad301235f
Optimize code unit output in compiled format
2023-06-14 21:13:26 +03:00
Victor Zverovich
5afb1821a9
Update docs
2023-06-13 18:58:15 +03:00
Victor Zverovich
977d887a4e
Suppress a bogus warning
2023-06-13 14:01:46 +03:00
Minty-Meeo
c86fe0b8d3
Give basic_memory_buffer allocator [[no_unique_address]] ( #3485 )
...
This allows stateless allocators to take up no space while still avoiding the empty base class optimization.
2023-06-13 01:22:19 -07:00
Minty-Meeo
de0757b578
Use FMT_TRY and FMT_CATCH in std.h ( #3482 )
...
This naked try-catch block prevents compilation when exceptions are disabled.
2023-06-10 21:28:13 -07:00
Hans-Martin B. Jensen
60fd9941c0
Use correct Char type in std::filesystem::path ( #3476 )
...
Godbolt repro:
https://godbolt.org/z/o4bjG6ddo
Co-authored-by: Hans-Martin B. Jensen <haje@eposaudio.com>
2023-06-02 14:12:57 -07:00
Hans-Martin B. Jensen
8abfc145be
Fix MSVC warning in std::chrono::time_point formatter ( #3475 )
...
* Fix MSVC warning in std::chrono::time_point formatter
The condition is constexpr causing MSVC level 4 warning:
warning C4127: conditional expression is constant
Changed the code to eliminate the warning
* Use detail::const_check
* Review: revert else condition
---------
Co-authored-by: Hans-Martin B. Jensen <haje@eposaudio.com>
2023-06-02 08:40:34 -07:00
Victor Zverovich
686b3353aa
Simplify typeid check
2023-06-01 09:32:44 -07:00
Dana Jansens
35547d6003
Use const_check to silence MSVC warning
...
The condition is constexpr, so the compiler warns if a runtime check
is used as there's no need to generate code for it.
2023-05-31 09:25:53 -07:00
Dana Jansens
179c7e5a66
Use typeid() only if it's available
...
On MSVC it is always available, otherwise it depends on whether
RTTI is enabled.
2023-05-31 09:25:53 -07:00
Victor Zverovich
bd393456ed
Remove FMT_*_DETAIL_NAMESPACE
2023-05-28 07:33:26 -07:00
Victor Zverovich
6be36af0d4
Remove udl_formatter
2023-05-27 17:16:36 -07:00
Victor Zverovich
2a35eeed8a
Remove unused data
2023-05-27 10:47:17 -07:00
Victor Zverovich
256a826d63
Consolidate formatters
2023-05-27 09:19:50 -07:00
Victor Zverovich
6369af37d3
Simplify formatters
2023-05-27 09:19:50 -07:00
Victor Zverovich
0b8404918e
Remove get_cached_power
2023-05-27 09:19:50 -07:00
Nico Rieck
171a020c82
Pass correct Char to base format_as formatter ( #3457 )
2023-05-24 14:50:47 -07:00
Victor Zverovich
d8f04e3995
Simplify ceil
2023-05-24 11:51:34 -07:00
Vladislav Shchapov
5e988f8dfa
Remove is_constant_evaluated() check
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-05-24 09:07:12 -07:00
Vladislav Shchapov
19b17618a9
Make constexpr ceil
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-05-24 09:07:12 -07:00
Victor Zverovich
858e528abd
Use dragon in constexpr
2023-05-23 06:30:09 -07:00
Victor Zverovich
ef55d4f52e
Suppress a bogus gcc warning
2023-05-22 11:27:20 -07:00
Victor Zverovich
6fe895410d
Remove invalid_arg_index
2023-05-21 19:57:17 -07:00
Victor Zverovich
de8d0171a2
Simplify FMT_FORMAT_AS
2023-05-20 18:28:01 -07:00
timsong-cpp
08ef0d0842
fix formatter<char*> ( #3432 )
2023-05-20 06:32:21 -07:00