Commit Graph

1754 Commits

Author SHA1 Message Date
Daniela Engert
6e2e6b796f Restore support for wchar_t overloads in module 2021-05-20 10:03:58 -07:00
Victor Zverovich
24b677d053 Improve symbol sizes 2021-05-20 07:21:20 -07:00
Victor Zverovich
63271a51c4 Fix ADL issues 2021-05-20 06:31:43 -07:00
Victor Zverovich
61b4c923d7 Reduce code bloat 2021-05-20 05:51:45 -07:00
Michael Winterberg
2a2e4c5801 addressing nits. 2021-05-19 16:09:49 -07:00
Michael Winterberg
be48f4d657 Avoid unwanted sign extensions from MSVC in is_utf8.
Microsoft's constexpr evaluator treats the type of micro[0] and micro[1] as
plain char, and so sign extends before comparing them to ints.
The normal compiler, including the optimizer, does not fail in this way,
so this is merely a "future proof" change in case someone uses is_utf8()
in a constant expression.
2021-05-19 16:09:49 -07:00
Sergiu Deitsch
13e652939b export missed symbols
Enable `-fvisibility=hidden` and `-fvisibility-inlines-hidden` by default in CI builds to ensure all public symbols are exported correctly.
2021-05-19 16:03:45 -07:00
Jessy De Lannoit
71fb113818 fix compile error on msvc preview 4 (16.10) involving lookup clash /w STL 2021-05-19 13:17:20 -07:00
Victor Zverovich
08d22503bb Remove outdated comments 2021-05-19 11:47:21 -07:00
Victor Zverovich
95c358f721 Improve separation between code unit types 2021-05-19 09:06:57 -07:00
Victor Zverovich
39c3c4ec22 Simplify the core API 2021-05-19 08:32:57 -07:00
Victor Zverovich
e9c1c415b8 Improve compile-time checks 2021-05-19 07:57:57 -07:00
Victor Zverovich
21d93bfd33 Move generic format functions to format.h 2021-05-18 19:01:43 -07:00
Victor Zverovich
9a92eb4158 Move more wchar overloads to wchar.h 2021-05-18 05:53:25 -07:00
Victor Zverovich
0dd91e20d5 Add wchar.h for wide char overloads 2021-05-17 21:59:10 -07:00
Victor Zverovich
ce14eafc24 Simplify format string checks 2021-05-17 19:25:50 -07:00
Victor Zverovich
8d70c0edab Refactor the format API 2021-05-17 18:25:36 -07:00
Victor Zverovich
813ac49543 More API cleanups 2021-05-17 07:58:13 -07:00
Victor Zverovich
4ab01fb198 Cleanup printf API 2021-05-17 07:19:50 -07:00
Victor Zverovich
d5036b11b1 Remove deprecated APIs 2021-05-17 06:59:46 -07:00
Victor Zverovich
2581946231 Cleanup the core API 2021-05-16 13:02:01 -07:00
Victor Zverovich
b35db4e006 Improve handling of 128-bit ints 2021-05-16 11:43:44 -07:00
Victor Zverovich
d35f1ad5c1 Cleanup core 2021-05-16 10:02:33 -07:00
Victor Zverovich
8f1902c05a Move format string checks to core.h 2021-05-16 07:08:49 -07:00
Daniela Engert
6469b9037c Silence msvc warning about an unused named parameter
Warning C4100 may cause compile failures under strict warning regimes.
2021-05-16 06:14:30 -07:00
Daniela Engert
5466373a11 Do *not* export namespace detail
Introduce `FMT_BEGIN_DETAIL_NAMESPACE` and `FMT_END_DETAIL_NAMESPACE` for `namespace detail` sections embedded in that part of the code that contains all declarations that are exported from the module, i.e. which is enclosed by `FMT_MODULE_EXPORT_BEGIN` and `FMT_MODULE_EXPORT_END`. Given a correct implementation of C++20 modules, neither the name `fmt::detail` nor any of its contents will become visible outside of the module.
2021-05-15 12:08:42 -07:00
Victor Zverovich
588bdb5404 Simplify get_arg_index_by_name 2021-05-15 06:47:43 -07:00
Alexey Ochapov
54f22a3eef add support for statically named arguments with FMT_STRING 2021-05-14 16:31:10 -07:00
Daniela Engert
ea94d6d93c Prevent ambiguity in name lookup
Unqualified calls to 'make_format_args' may find the same name by ADL in <format> if this C++20 header happens to be directly or indirectly included in a translation unit. Do a qualified lookup instead.
2021-05-14 07:10:02 -07:00
Victor Zverovich
57280762b6 Move specs checker to core.h 2021-05-13 19:33:09 -07:00
Victor Zverovich
ced3037523 Move dynamic specs to core.h 2021-05-13 19:01:21 -07:00
Victor Zverovich
dd2bc998ab Move specs to core.h 2021-05-13 18:48:15 -07:00
Victor Zverovich
08da1adcf6 Remove unused headers 2021-05-13 17:58:15 -07:00
Victor Zverovich
3be0cc2087 Fix handling of 128-bit ints 2021-05-13 17:53:23 -07:00
Victor Zverovich
d1aebdbde0 Inline format_to 2021-05-12 18:07:59 -07:00
Victor Zverovich
02896dabee Avoid use after move (#2278) 2021-05-11 16:58:07 -07:00
Владислав Щапов
0036a1d195 Fix issue #2274. 2021-05-10 15:57:23 -07:00
Владислав Щапов
2a9b314627 Replace fmt::error_code to std::error_code 2021-05-09 12:26:19 -07:00
Victor Zverovich
4862930845 Optimize format string compilation 2021-05-09 09:15:55 -07:00
Victor Zverovich
3207a8bbbf Get rid of unnecessary recursion to enable inlining 2021-05-09 07:54:13 -07:00
Victor Zverovich
6214f15a0c Optimize standard formatter specialization 2021-05-09 07:11:35 -07:00
Victor Zverovich
cd2c78fb8a Use write directly in formatter specializations 2021-05-09 07:07:51 -07:00
Владислав Щапов
4211d86539 Add a formatter specialization for std::error_code. 2021-05-09 06:29:39 -07:00
Victor Zverovich
84feeb0f36 Remove redundant comments and put common case check first 2021-05-07 17:14:29 -07:00
Victor Zverovich
d0abe7c246 Make chrono formatting locale-independent by default 2021-05-07 16:14:10 -07:00
Victor Zverovich
50fb0b5eae Fix formatting 2021-05-07 08:52:49 -07:00
Victor Zverovich
16f2ef91ab Replace fmt::system_error with std::system_error 2021-05-07 08:33:39 -07:00
Victor Zverovich
4b885c8633 Replace windows_error with system_error 2021-05-07 06:19:03 -07:00
Victor Zverovich
5238055f40 Move esoteric char type support to format.h 2021-05-06 09:02:00 -07:00
Victor Zverovich
849c9f6168 Move is_name_start to core 2021-05-06 08:12:24 -07:00
Victor Zverovich
23892caf53 Move more parsing to core 2021-05-06 07:37:40 -07:00
Victor Zverovich
8e6390c32c Move FMT_STRING to core 2021-05-06 07:19:41 -07:00
Victor Zverovich
51a33713fc Move parsing to core 2021-05-06 07:01:29 -07:00
Victor Zverovich
9d7b53cb9b Remove redundant formatter specialization for byte 2021-05-05 08:14:12 -07:00
Victor Zverovich
f0095ccd34 Add support for ranges of types without formatters to join (#2262) 2021-05-05 07:43:46 -07:00
Victor Zverovich
4f0eadfce4 Exclude fallback from is_formattable 2021-05-05 06:29:51 -07:00
Victor Zverovich
400b953fbb Use [] instead of {} in ranges for consistency with Python format 2021-05-04 21:04:21 -07:00
Victor Zverovich
38bcc04a11 Drop range limit and cleanup tests 2021-05-04 20:53:56 -07:00
Victor Zverovich
9155e2de4c Cleanup tests 2021-05-01 17:11:45 -07:00
Victor Zverovich
c9c0e5077d Cleanup tests 2021-04-30 06:42:38 -07:00
Victor Zverovich
ccf4ccde23 Cleanup tests and format string compilation 2021-04-29 19:50:04 -07:00
Victor Zverovich
e96a92f869 Cleanup tests and format string compilation 2021-04-29 16:21:08 -07:00
Daniela Engert
342973b349 Make wchar_t overloads usable in module
Bring ''detail::find()' into scope.
2021-04-28 09:37:57 -07:00
Victor Zverovich
355be4b13f Make FMT_COMPILE fallback on runtime without if constexpr (#2261) 2021-04-28 09:11:47 -07:00
Владислав Щапов
0cd0fb9184 C++17: std::char_traits<>::{compare,length} is constexpr - v2 2021-04-28 07:05:32 -07:00
Daniela Engert
d1a6e5603f Keep defaulted destructors inline
applies to exception classes in case of msvc only
2021-04-28 06:17:26 -07:00
Victor Zverovich
84a36b99bf Move data to functions 2021-04-27 17:21:32 -07:00
Victor Zverovich
ab7c33ede0 Suppress checked iterator warnings 2021-04-27 13:54:39 -07:00
Alexey Ochapov
77258f6069 fix FMT_CONSTEXPR_CHAR_TRAITS check for MSVC 2021-04-26 16:35:32 -07:00
Alexey Ochapov
f085c3d7a0 use proper check for non-type template parameters 2021-04-26 16:35:32 -07:00
Victor Zverovich
69bdc20a3c Workaround missing std::system on iOS, take 2 2021-04-26 06:21:44 -07:00
Alexey Ochapov
1678ed6235 simplify field::format() and spec_field::format(), fix typo 2021-04-25 07:53:49 -07:00
Alexey Ochapov
ca821982ee use named arg with static name in compile-time API
to get arg index by name at compile-time
2021-04-25 07:53:49 -07:00
Alexey Ochapov
ce6e7d8620 use fixed_string to create named arg class with static name for _a literal 2021-04-25 07:53:49 -07:00
Alexey Ochapov
fc56af14c2 move fixed_string from compile.h to format.h 2021-04-25 07:53:49 -07:00
Victor Zverovich
8f9ddf452d Remove deprecated posix.h 2021-04-24 07:03:11 -07:00
Daniela Engert
d3c523e0d2 Export printf-related contexts from printf.h 2021-04-24 06:39:57 -07:00
Daniela Engert
2c25df089f Export replacement type_traits, too 2021-04-24 06:39:57 -07:00
Victor Zverovich
553022dc56 Don't use std::system on iOS (#2248) 2021-04-24 06:17:05 -07:00
Victor Zverovich
8a040d187a Cleanup core-test 2021-04-23 20:07:48 -07:00
Victor Zverovich
064cac2bf9 Bump version 2021-04-23 16:05:03 -07:00
Victor Zverovich
5b2c740ad8 Remove deprecated APIs 2021-04-23 15:27:25 -07:00
Victor Zverovich
b9ab5c8836 Remove printf.h dependency on ostream.h 2021-04-23 10:42:57 -07:00
Victor Zverovich
c47f211296 Simplify data handling 2021-04-23 06:52:10 -07:00
Victor Zverovich
54d3b1710e Move more data out of basic_data 2021-04-23 06:45:23 -07:00
Vladislav Shchapov
128f007b25
C++17: std::char_traits<>::{compare,length} is constexpr. (#2246) 2021-04-23 06:11:34 -07:00
Victor Zverovich
841aad95b4 Move data out of basic_data 2021-04-22 15:29:42 -07:00
Alexey Ochapov
1d4199f46b
fix udl_compiled_string with non-byte chars (e.g. wchar) (#2242) 2021-04-19 08:29:35 -07:00
yumeyao
c5d4fcb119
Appending a space to guarantee non-empty strftime() result. (#2244) 2021-04-18 19:13:51 -07:00
Victor Zverovich
6271406233 Fix a warning (#2233) 2021-04-16 15:58:17 -07:00
denchat
52bd62c72f
Create separate dllexport marking points for clang and msvc. (#2229)
* add FMT_INSTANTIATION_DEF_API for msvc

This should fix https://github.com/fmtlib/fmt/issues/2228

To fix difference dllexport requirements
msvc:  dllexport at template instantiation definition in format.cc
clang: dllexport at template instantiation declaration (extern template) in format.h
2021-04-16 12:34:18 -07:00
Daniela Engert
f4bbc54cc4
Tag official API for module export (#2235)
* functions
 * classes
 * UDLs
 * other declarations

Export everything in namespace 'fmt' from core.h and format.h
2021-04-16 11:04:55 -07:00
Daniela Engert
d8910af80d
Use qualified name lookup rather than ADL. (#2239)
Name lookup within exported templates cannot find non-exported entities by ADL when instantiation takes place outside the module.
2021-04-16 09:38:25 -07:00
crbrz
9260114162
Ranges wide strings support (#2236)
* Ranges copy wchar_t

* arg_join formatter not working for wide strings

* Added ranges wide string tests

Co-authored-by: Cristi <cristi@emailaddressmanager.com>
2021-04-16 06:25:35 -07:00
denchat
42eccac454
Fix clang warning about ignoring __declspec(dllexport) on basic_data<void> template instantitation definition (#2220) 2021-04-12 09:31:44 -07:00
Victor Zverovich
99c2f7a349 Allow including fmt/core.h in the header-only mode 2021-04-10 07:44:36 -07:00
Elliot
78776ee4e2
Fix a conditional expression is constant warning #2210 (#2211) 2021-04-07 10:42:11 -07:00
jstaahl
266107f57c
constexpr uint128_wrapper (#2215)
* constexpr uint128_wrapper

* change FMT_CONSTEXPR to constexpr

* clang format

Co-authored-by: Jake Staahl <jstaahl@snapchat.com>
2021-04-06 22:07:01 -07:00
Alexey Ochapov
2e0d64cf2f specify size for prefixes static data 2021-04-06 17:07:14 -07:00
Victor Zverovich
95da484727 Fix a link 2021-04-03 09:14:52 -07:00