Commit Graph

2826 Commits

Author SHA1 Message Date
Victor Zverovich
933d8ba352 Improve apidoc formatting 2024-06-01 09:24:32 -07:00
Victor Zverovich
91a859ee4a Switch to markdown 2024-06-01 08:56:26 -07:00
Victor Zverovich
a4d42c44f4 Cleanup comments 2024-06-01 07:00:56 -07:00
Eric Bryant
fcd3e1e19c
is_convertible_v -> is_convertible::value (#3983) 2024-05-31 10:02:59 -07:00
ZaheenJ
ca8eeb09ee
Add glibc ext for day of month and week of year (#3976) 2024-05-30 10:20:56 -07:00
Victor Zverovich
cf9833f40b Cleanup apidoc comments 2024-05-29 20:30:19 -07:00
Victor Zverovich
33eba1049d
Minor comment fix 2024-05-28 11:39:49 -07:00
Matthias Moulin
43ab964c47
MSVC 17.10.0 + modules cannot find definition (#3972)
MSVC regressed since the new 17.10.0 compiler update. node<> cannot be found for detail::dynamic_arg_list::typed_node.
2024-05-28 11:34:44 -07:00
Matthias Moulin
728f9bc388
Added std::type_info formatter (#3978)
* Added std::type_info formatter;
* Reused std::type_info formatter in std::exception formatters;
* Updated MSVC std::type_info outputting to exclude all class, struct and enum occurences.
2024-05-28 10:57:08 -07:00
Matthias Moulin
1752d7fbbb
Added formattable concept (#3974) 2024-05-26 07:47:56 -07:00
Matthias Moulin
1768bf9714
Added FMT_EXPORT for fmt::range_format and fmt::range_format_kind (#3970) 2024-05-24 07:08:07 -07:00
Justin Riddell
fc723fd6c7
Fix regression in #3710 (#3968)
Regression introduced in 11f2f30
Already have a test for this, but needed to make __cpp_lib_ranges
smaller to enable it
2024-05-23 12:39:11 -07:00
Justin Riddell
b81761068b
Check range_begin is dereferenceable (#3964)
Fixes issue #3839
An Eigen 3.4 2x2 matrix has a begin member function that returns void
Be more strict checking that the result of calling *begin() is valid
See input_or_output_iterator concept notes about void
2024-05-20 16:11:07 -07:00
Matthias Moulin
706eabd5e5
Resolved warning C4127: conditional expression is constant (#3967) 2024-05-20 11:59:19 -07:00
Edoardo Lolletti
028bffa083
Update checks for dynamic_cast usage when compiled with no rtti (#3963)
* Rename FMT_USE_TYPEID to FMT_HAS_RTTI and use it as check to enable dynamic_cast usage

* FMT_HAS_RTTI->FMT_USE_RTTI
2024-05-19 11:21:55 -07:00
Victor Zverovich
75e892420e Minor cleanup 2024-05-16 10:45:23 -07:00
Justin Riddell
8e728044f6
Fix format_as for non-const begin/end views (#3955)
base::format does not accept rvalues, using the result of format_as
directly means it is passed one. Doesn't matter for ranges with a const
begin and end, but filter_view caches, so it only has mutable begin/end.
Use auto&& to avoid copy if format_as returns const ref
2024-05-13 09:35:55 -07:00
Victor Zverovich
1f436c646e Cleanup locking/buffering 2024-05-12 09:34:17 -07:00
Victor Zverovich
db1ee420e0 Cleanup unicode check more 2024-05-11 20:02:22 -07:00
Victor Zverovich
7d6ae972b9 Cleanup unicode checks 2024-05-11 19:43:46 -07:00
Victor Zverovich
3460b30fd5 Improve utf-8 detection 2024-05-11 18:58:40 -07:00
Victor Zverovich
b7809f91e2 Enable Unicode support by default 2024-05-11 15:11:23 -07:00
Victor Zverovich
1dc71f21ea Enable Unicode by default 2024-05-10 18:27:45 -07:00
Victor Zverovich
8db8f22490 Optimize join_view 2024-05-09 17:26:26 -07:00
Victor Zverovich
d2473b7b73 Simplify join_view formatter 2024-05-08 15:42:49 -07:00
Victor Zverovich
328d256c60 Apply coding conventions 2024-05-06 15:10:29 -07:00
Victor Zverovich
57593a123b Simplify map formatter 2024-05-06 15:09:31 -07:00
Justin Riddell
10508a30ec
Enable fmt::join for uncopyable iterators (#3946)
If iterator not copyable mutate the underlying iterator
Notably std::ranges::basic_istream_view::__iterator
Addresses issue (#3802)
2024-05-05 15:44:23 -07:00
Victor Zverovich
16cec4f591 Make the map formatter correctly handle elements with custom formatters 2024-05-04 10:59:16 -07:00
Victor Zverovich
77bfd8499a Split range and map formatters 2024-05-04 09:41:02 -07:00
Victor Zverovich
3af8ac7a06 Privatize write_debug_string 2024-05-04 07:38:58 -07:00
Victor Zverovich
ceb406d06c Remove range_default_formatter 2024-05-04 07:20:40 -07:00
Victor Zverovich
7650ed04a3 Fix to_nonnegative_int 2024-05-03 07:49:16 -07:00
Alex Dewar
8a8f4825a3 Fix: isnan() shouldn't cause FP exceptions
Fixes #3948.
2024-05-02 09:36:21 -07:00
Marlene Cota
48c908453d
Fix CodeQL alert (#3945) 2024-04-30 12:41:29 -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
400f6a8ee2 Dedup ADL begin/end lookup 2024-04-22 16:09:07 -07:00
Jiwoo Park
f4b256c667 Fix warning C26439 2024-04-19 09:06:46 -07:00
Victor Zverovich
f746a59a5c Cleanup FMT_ASSERT 2024-04-19 08:36:16 -07:00
Hans-Martin B. Jensen
ee0c3351a4
Fix format_to + FMT_STRING for wide character type (#3931)
Added overload that takes a wformat_string.
Fixes issue #3925.
2024-04-17 08:30:48 -07:00
Justin Riddell
99735764ea
Fix FMT_USE_NONTYPE_TEMPLATE_ARGS define back (#3937)
Broken in refactor f1924d3
2024-04-16 13:29:30 -07:00
Matthias Moulin
116a9ce488
Added FMT_IMPORT_STD feature macro (#3928) 2024-04-10 11:48:32 -07:00
ShifftC
5eb68c0ef2
Fix mix-up of 'FMT_BEGIN_EXPORT' and 'namespace detail'. (#3924) 2024-04-08 09:46:20 -07:00
Matthias Moulin
550437b29e
Resolved warning C4127: conditional expression is constant (#3923) 2024-04-07 11:01:26 -07:00
Philippe Proulx
4e8640ed90
Fix: enable FMT_NORETURN without exception support too (#3917)
When building `format.cc` as such with GCC 13.2.1:

    $ g++ -c format.cc -DFMT_EXCEPTIONS=0 -Wmissing-noreturn -Werror

I get:

    In file included from format.cc:8:
    fmt/format-inl.h: In function ‘void fmt::v10::detail::assert_fail(const char*, int, const char*)’:
    fmt/format-inl.h:30:15: error: function might be candidate for attribute ‘noreturn’ [-Werror=suggest-attribute=noreturn]
       30 | FMT_FUNC void assert_fail(const char* file, int line, const char* message) {
          |               ^~~~~~~~~~~
    fmt/format-inl.h: In function ‘void fmt::v10::report_error(const char*)’:
    fmt/format-inl.h:129:15: error: function might be candidate for attribute ‘noreturn’ [-Werror=suggest-attribute=noreturn]
      129 | FMT_FUNC void report_error(const char* message) {
          |               ^~~~~~~~~~~~
    cc1plus: all warnings being treated as errors

Note that, with `FMT_EXCEPTIONS` defined to 0:

‣ report_error(const char *) uses FMT_THROW() which expands to calling
  assert_fail().

‣ assert_fail() calls std::terminate() which has the `[[noreturn]]`
  attribute since C++11 [1].

Therefore, with `FMT_EXCEPTIONS` defined to 0, both assert_fail() and
report_error() need to have the `[[noreturn]]` attribute too (if
available). In other words, `FMT_NORETURN` doesn't depend on
`FMT_EXCEPTIONS`.

Also adding `FMT_NORETURN` to two on_error() functions which call
report_error(const char *).

Other report_error() overloads eventually return, therefore they don't
need `FMT_NORETURN`.

[1]: https://en.cppreference.com/w/cpp/error/terminate

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
2024-04-04 17:15:18 -07:00
Victor Zverovich
c70e7b7473 Coding conventions and minor fixes 2024-04-05 08:36:45 +09:00
zivshek
71144eeaff
implement year_month_day (#3913)
* implement year_month_day, also changed weekday, day, month, year's formatter to use formatter<std::tm, Char> so they all support the format strings
* support ":L" for month and weekday
2024-04-03 15:35:53 -07:00
Vladislav Shchapov
ca9193983b
Replace std::fill_n with fmt::detail::fill_n (#3909)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-03-28 17:26:18 -07:00
zivshek
74a187288b
Implemented fmt::day, fmt::month, fmt::year and related unit tests (#3906) 2024-03-27 17:10:30 -07:00
Victor Zverovich
5d63e87d23 Add a formatter for float128 2024-03-22 15:41:50 +09:00