2258 Commits

Author SHA1 Message Date
Vladislav Shchapov
6c9304b2c2 Replace ParseContext with basic_format_parse_context
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-05 06:15:59 -07:00
Vladislav Shchapov
24ab9dd19e Remove duplicate method
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-05 06:15:59 -07:00
Vladislav Shchapov
a95dc17017 Remove unused condition
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-05 06:15:59 -07:00
Victor Zverovich
5f774c0aed I shouldn't be there 2022-08-02 16:35:50 -07:00
Vladislav Shchapov
6c6b1fbf6e Workaround a bug in MSVC
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-08-02 06:46:02 -07:00
Victor Zverovich
6452e3c9eb Fix a typo in example 2022-08-02 06:26:19 -07:00
Dimitrij Mijoski
756822ba39
Fix Unicode handling for ostream under Windows with libc++. (#3001)
Also replaces the SFIANE tricks applied in
ce7ecdb7afb207dadf55c8ae457e14aa44e7f537 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
Victor Zverovich
e9ca7ea472 Suppress a bogus warning 2022-07-28 07:12:49 -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
Victor Zverovich
48e0a59222 Implement compile-time checks for dynamic width/precision type 2022-07-22 17:00:40 -07:00
Federico
bc5c7c50fd
Fixes IBM XLC behavior with uint128 fallback (#2985)
* Fixes IBM XLC behavior with uint128 fallback

* Replace legacy xlc with clang-based xlc

* simplify xlc intrinsics handling

Co-authored-by: Federico Busato <fbusato@nvidia.com>
2022-07-22 13:49:17 -07:00
Victor Zverovich
371f9c71ca Fix even in format_dragon 2022-07-19 08:36:34 -07:00
Victor Zverovich
91abfcd6cf Suppress an msvc warning 2022-07-16 08:57:09 -07:00
Victor Zverovich
deeab54b40 Remove unused include 2022-07-15 20:11:35 -07:00
Junekey Jeon
688a627d6c Remove unused constants. 2022-07-14 15:25:35 -07:00
Junekey Jeon
9bb1605f10 Remove some branches 2022-07-14 15:25:35 -07:00
Junekey Jeon
8061d9afbe Simplify Dragonbox implementation 2022-07-14 15:25:35 -07:00
Victor Zverovich
d82e1a108d Make sure the correct fmod overload is called 2022-07-13 12:42:03 -07:00
Vladislav Shchapov
defa04e730
Fix for EDG frontend (Intel, NVHPC compilers) (#2982)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-07-13 11:34:43 -07:00
Barry Revzin
92d36e82c4
The n specifier for ranges (#2981)
* The n specifier for ranges.

* Flipping flag polarity.
2022-07-12 10:08:38 -07:00
Federico
0db43cf7fe
Pointless comparison warnings (#2971)
Co-authored-by: Federico Busato <fbusato@nvidia.com>
2022-07-11 12:29:39 -07:00
Victor Zverovich
2a1b3ac629 Fix large shift in uint128_fallback 2022-07-10 08:27:21 -07:00
Daniel Krügler
e1d3d3a326
Exclude recursive ranges from the formatter specialization for ranges (#2974)
* 2954: Add test case

* Eliminate extra-test and merge it into existing std-test instead. Add conditionals for filesystem::path testing that does not run into the ambiguity problem.

* #2968: Introduce additional compile-time predicate to detect recursive ranges and reject them in formatter specialization for ranges. In addition, introduce additional wrapper traits for the individual logical operands of the complete range constraints

* #2968: Eliminate preprocessor condition that enables the formatter specialization for std::filesystem::path

* #2968: Eliminate preprocessor condition that enables the test for the formatter specialization for std::filesystem::path

* Use own bool_constant, which is available for all C++ versions

* Reintroduce previous workaround but restrict to VS 2015 for now

* Comma fix

* - Rename is_not_recursive_range to is_nonrecursive_range and add comment that explains it being depending on is_range being true
- Merge has_fallback_formatter_delayed into is_formattable_delayed and add comment that explains it being depending on is_not_recursive_range being true
- Replace disjunction in formatter specialization by has_fallback_formatter_delayed
- Get rid of unneeded detail:: prefixes within namespace detail
2022-07-10 06:26:23 -07:00
Victor Zverovich
b761f1279e Improve forward using the idea from Jonathan Müller 2022-07-07 16:48:17 -07:00
Victor Zverovich
cc1926942f Inline std::forward 2022-07-07 14:41:54 -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
fa2eb2d2e3 Bump version 2022-07-04 09:37:29 -07:00
Victor Zverovich
35f72bf210 Bump version 2022-07-04 09:10:55 -07:00
Victor Zverovich
55727e3b21 More compile-time checks 2022-07-04 08:25:27 -07:00
Vladislav Shchapov
115e00e0b9 Replace __cplusplus with FMT_CPLUSPLUS.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-07-04 07:18:21 -07:00
Daniel Krügler
d2a2320820
Fix partial specialization problem for filesystem for Visual Studio (#2957)
* #2954: Provide std::conjunction and std::disjunction substitutes

* #2954: Use conjunction and disjunction substitute to make formatter specializations for ranges and maps more robust (especially for Visual Studio compiler family)

* #2954: As workaround for older MSVC compilers split formatter<std::filesystem::path> partial template specialization into two explicit specialization.

* 2954: Add test case

* Provide simplified implementations of conjunction and disjunction

* Remove workaround explicit specializations if the partial specialization would cause an ambiguity error

* Eliminate extra-test and merge it into existing std-test instead. Add conditionals for filesystem::path testing that does not run into the ambiguity problem.
2022-07-03 11:06:54 -07:00
Victor Zverovich
0c06c81da8 Deprecated implicit conversion of enums to ints for consistency with scoped enums 2022-07-03 09:02:22 -07:00
Vladislav Shchapov
99bb5b1d17 Fix std::variant, std::filesystem::path tests on GCC-8, Clang-7,8.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-07-02 08:34:52 -07:00
jehelset
6a775e9560
Add support for 'std::variant' in C++17 (#2941)
Add support for 'std::variant' in C++17.

For C++17, if all the alternatives of a variant are formattable
the variant is now also formattable. In addition 'std::monostate'
is now formattable.

Moves implementation into 'std.h', and tests into 'std-test.cc'.

Avoid fold-expression since MSVC was crashing.

Add section for 'fmt/std.h' in API-docs.
2022-06-26 07:28:01 -07:00
Victor Zverovich
9cb02aaaad Fix UDLs 2022-06-25 08:52:10 -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
Jonathan W
e8bd2a804d
Fix enable_ifs for map formatter (#2944) 2022-06-23 08:24:11 -07:00
Victor Zverovich
69a20db081 Update changelog and fix an apidoc comment 2022-06-22 08:32:46 -07:00
jehelset
5682338891
Fix is_formattable for tuple-like types. (#2940) 2022-06-19 08:25:58 -07:00
Victor Zverovich
eaa8efb950 Fix ofstream handling in msvc 2022-06-16 15:02:33 -07:00
Juraj
8e47cfd1cd fix -Wsign-conversion warning 2022-06-11 12:31:33 -07:00
Victor Zverovich
b135f1c014 Refactor handling of argument types 2022-06-09 17:03:33 -07:00
Victor Zverovich
f61a1e8132 Add format_arg_types 2022-06-09 15:50:30 -07:00
Mattes D
48b7e3dafb Added a FMT_STRING wrapper for system_error() call.
This enables the use of FMT_ENFORCE_COMPILE_STRING on MSVC 2019.
2022-06-07 07:00:57 -07:00
Victor Zverovich
4bb3af7a6b Improve compile-time checks 2022-06-05 13:58:04 -07:00
Vladislav Shchapov
d02c582b96 Fix 'duplicate symbol' error.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-06-05 07:17:25 -07:00
Vladislav Shchapov
b59d8c3a23 Make std::filesystem::path formatter utf-8 compatible.
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-06-04 10:10:21 -07:00
Victor Zverovich
9d60395953 Fix compilation on ppc64 2022-05-31 13:53:15 -07:00