Commit Graph

123 Commits

Author SHA1 Message Date
Victor Zverovich
38ba3d3993 Migrate to mkdocs 2024-06-02 08:26:56 -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
7d6ae972b9 Cleanup unicode checks 2024-05-11 19:43:46 -07:00
Matthias Moulin
116a9ce488 Added FMT_IMPORT_STD feature macro (#3928) 2024-04-10 11:48:32 -07:00
Victor Zverovich
4d766b1670 Invert dependencies 2024-01-13 10:30:44 -08:00
Victor Zverovich
da7a232b9e Cleanup contexts 2024-01-10 13:09:55 -08:00
Victor Zverovich
6af30d8f75 Remove legacy workaround 2024-01-08 20:13:50 -08:00
Victor Zverovich
a5ae9ae19d Split standard context into a separate class and optimize 2024-01-08 07:08:49 -08:00
Victor Zverovich
fc0f84d290 Move formatbuf to ostream.h 2023-12-23 15:00:28 -08:00
Victor Zverovich
d5da9cc40e Apply clang-tidy 2023-12-19 17:52:50 -08:00
Kefu Chai
6855bd532b Apply clang-format
* use clang-format v17.0.6 to reformat the tree
* tweak some places so that clang-format does not mutate the layout
  of code too much

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-12-13 07:18:37 -08:00
Victor Zverovich
8a39388516 Fix the default locale in ostream_formatter 2023-11-24 09:24:43 -08: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
Victor Zverovich
f7542c5761 Apply clang-format 2023-10-14 06:52:43 -07:00
Victor Zverovich
2dd4fa8742 Remove an ostream hack incompatible with libc++ 17 2023-09-26 12:42:37 -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
Victor Zverovich
b14913fae5 FMT_MODULE_EXPORT -> FMT_EXPORT 2023-05-17 07:38:06 -07:00
Daniela Engert
c039389223 export names only once (#3392)
names declared to be exported at the point of introduction into a namespace *must not* be (re-)declared as exported later in the TU, e.g. when they are redeclared, defined, or specialized. [module.export]/6

Drive-by fix found during module testing: add a missing `detail::` name qualification
2023-04-22 06:21:06 -07:00
June Liu
33f7150778 Fix error C2668 on msvc (#3378) 2023-04-11 06:27:28 -07:00
Victor Zverovich
19c074e477 Remove deprecated fallback formatter 2023-03-26 08:45:06 -07:00
Victor Zverovich
507c3042d8 class -> typename 2023-02-18 10:23:42 -08:00
Shawn Zhong
87c066a35b Implement println (#3267) 2023-01-24 12:30:00 -08:00
Björn Schäpers
2d66ad5d33 Suppress -Wshadow
Solves:
/fmt/include/fmt/ostream.h:89:18: warning: declaration of 'fbuf' shadows a previous local [-Wshadow]
   89 |   else if (auto* fbuf = dynamic_cast<__gnu_cxx::stdio_filebuf<char>*>(rdbuf))
      |                  ^~~~
C:/GIT/ok-mimot/libs/3rdParty/fmt/include/fmt/ostream.h:87:13: note: shadowed declaration is here
   87 |   if (auto* fbuf = dynamic_cast<__gnu_cxx::stdio_sync_filebuf<char>*>(rdbuf))
      |             ^~~~
2022-09-13 11:14:30 -07:00
Dimitrij Mijoski
8bd02e93b2 Reduce conditional compilation 2022-08-09 09:05:01 -07:00
Dimitrij Mijoski
d9c1c7353a Use is_utf8() in print(std::ostream&, ...)
This patch concludes the Unicode support for print(ostream&, ...)
2022-08-09 09:05:01 -07:00
Dimitrij Mijoski
756822ba39 Fix Unicode handling for ostream under Windows with libc++. (#3001)
Also replaces the SFIANE tricks applied in
ce7ecdb7af with conditional compilation.
The code was too complicated along with the other trick to access private
data members.
2022-07-30 06:49:21 -07:00
Barry Revzin
0b2862a1e4 Range formatter (#2983)
* Implement range_formatter and format_kind

* Attempted gcc 4.8 fix

* gcc 4.8 interprets inaccessible as a hard error (instead of... not available)

* Attempting to delete set_debug_format.

* clang-format

* Different implementation of FMT_STATICALLY_WIDEN

* Renaming copy_str_range to copy_str.

* I guess I need a definition

* Forgot to delete these.

* Other PR comments.
2022-07-29 13:55:16 -07:00
Dimitrij Mijoski
81f1cc74a7 Improve Unicode handling when writing to an ostream on Windows (#2994)
* Refactor detail::print() by splitting into two functions.

The part with SetConsoleW is a separate function, without fwrite().

* Make Unicode handing when writing to std::ostream more robust.

Calls to print(ostream&) in the special Unicode case on Windows fallback
to writing via ostream::write instead of fwrite().

* Fix Unicode handling when writing to an ostream on GCC on Windows

* Add TODO note about detail::is_utf8()

* Fix warning -Wundef

* Fix for non-Windows OSs

* Fix building as DLL on Windows

* Refactor

* Suppress warning
2022-07-23 08:03:31 -07:00
Vladislav Shchapov
b31d1a75a0 Add xchar support for fmt::streamed().
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-07-05 19:07:06 -07:00
Victor Zverovich
e6d478f8e8 Update changelog and docs 2022-06-25 08:33:57 -07:00
Victor Zverovich
2d931b1497 Add fmt::streamed 2022-06-24 09:26:24 -07:00
Victor Zverovich
eaa8efb950 Fix ofstream handling in msvc 2022-06-16 15:02:33 -07:00
Victor Zverovich
c83a5d42bb FMT_MSC_VER -> FMT_MSC_VERSION 2022-05-29 15:39:08 -07:00
Victor Zverovich
edeb3d8091 Remove deprecated APIs 2022-05-21 19:57:38 -07:00
Victor Zverovich
86e27ccb41 Suppress a warning 2022-04-12 09:30:29 -07:00
Victor Zverovich
fc429d18b6 Avoid overhead on sensible platforms 2022-04-11 16:52:34 -07:00
Victor Zverovich
ce7ecdb7af Replace conditional compilation with SFINAE 2022-04-11 12:16:05 -07:00
Victor Zverovich
8751a03a04 Fix Unicode handling when writing to an ostream 2022-04-10 09:46:01 -07:00
Jean-Michaël Celerier
288c3b928b Remove dead code in ostream.h format_value 2022-03-29 10:21:19 -07:00
Victor Zverovich
44abd1f483 Update signatures in docs and ostream.h 2022-03-22 16:05:30 -07:00
Victor Zverovich
4e39e13085 Remove xchar.h include from ostream.h 2022-03-18 10:53:15 -07:00
timsong-cpp
17ba99c1d2 Fix #2817: add compile-time checking to ostream overloads of fmt::print 2022-03-18 10:11:14 -07:00
Vladislav Shchapov
10e3b83a75 Replace `make_args_checked with make_format_args` (#2760)
* Replace make_args_checked to make_format_args

* Deprecate legacy make_args_checked
2022-02-13 20:13:35 -08:00
Victor Zverovich
17b362f78c Simplify ostream opt-in API 2022-02-04 18:33:59 -08:00
Victor Zverovich
f055ebbd25 Make ostream operators opt in to reduce the risk of ODR violations 2022-02-04 15:06:45 -08:00
Victor Zverovich
31e743d06e Don't use ostream for types convertible to string_view 2022-02-04 11:00:00 -08:00
Vladislav Shchapov
b02e5af52c fmt::join support FMT_COMPILE (#2720) 2022-01-14 09:58:49 -08:00
Victor Zverovich
e4f0564aa6 Disable is_streamable for string[_view] 2021-12-09 10:02:18 -08:00
Vladislav Shchapov
c240d98ffd Optimize tm formatting (Non C-locales and %Z) (#2617)
* Move fmt::detail::formatbuf to format.h

* Replace std::basic_ostringstream to std::basic_ostream with custom formatbuf

* Use tm.tm_zone
2021-12-04 11:02:31 -08:00
Victor Zverovich
60cd5ea3f2 Add support for more formattable types in ranges 2021-09-03 14:55:41 -07:00