Victor Zverovich
5413713c95
Remove unused function
2020-08-04 19:08:06 -07:00
Victor Zverovich
57f462428d
Increase the default buffer size
2020-08-04 08:19:19 -07:00
Victor Zverovich
e587adb4e9
Simplify count_digits
2020-08-03 15:45:48 -07:00
Victor Zverovich
279d698e1b
Fix handling of default alignmment with locale ( #1801 )
2020-08-03 10:51:42 -07:00
Victor Zverovich
76cfb50b2d
Test complex formatter
2020-08-03 10:05:18 -07:00
Victor Zverovich
208291205d
Optimize count_digits
2020-08-02 07:58:36 -07:00
Victor Zverovich
8d9ab96736
Cut a few cycles from count_digits
2020-08-01 18:33:53 -07:00
Victor Zverovich
734344931f
Simplify ostream_params
2020-08-01 18:33:53 -07:00
Victor Zverovich
7c4c5c79d2
Make buffer size configurable
2020-08-01 10:53:58 -07:00
Kingcom
f0b84da5ff
Don't use 128 bit integers with clang-cl ( #1800 )
...
clang-cl currently has a long-standing bug that using 128 bit integers
generates references to symbols that are provided neither by its own nor
by the Microsoft runtime: https://bugs.llvm.org/show_bug.cgi?id=25305
2020-07-30 17:21:35 -07:00
Victor Zverovich
a3dfd6f927
Workaround a bug in msvc
2020-07-30 11:13:54 -07:00
Victor Zverovich
51d05521e9
Workaround broken numeric_limites, part 2 ( #1787 )
2020-07-30 09:42:24 -07:00
Victor Zverovich
21c8b5c142
Report error on missing named argument ( #1796 )
2020-07-30 07:16:15 -07:00
Victor Zverovich
d82fdcc9e2
Fix handling of iterators in locale-specific formatting ( #1782 )
2020-07-30 07:03:11 -07:00
Victor Zverovich
86b63bb71a
Bump version
2020-07-29 07:14:25 -07:00
Victor Zverovich
229ee9b469
Workaround broken numeric_limits ( #1725 )
2020-07-29 07:06:45 -07:00
Victor Zverovich
2b7a146fa1
Fix a regression in handling digit separators ( #1782 )
2020-07-29 07:04:11 -07:00
Victor Zverovich
e8f2580a43
Bump version
2020-07-28 09:25:15 -07:00
Victor Zverovich
95d3abf95c
Make format_to_n part of the core API
2020-07-24 09:25:26 -07:00
Victor Zverovich
47f8d7a345
Make formatted_size part of the core API
2020-07-23 08:51:38 -07:00
TheQwertiest
430f393d6f
Disabled __attribute__((deprecated)) usage for LCC ( #1790 )
2020-07-23 06:34:03 -07:00
Tony E Lewis
febffa4e64
Make join() handle non-const-only begin/end ranges ( #1786 )
...
See fmtlib/fmt#1784 .
Add tests that demonstrate the problem and check obvious variations.
2020-07-21 12:13:00 -07:00
Victor Zverovich
d69e2da221
Fix apidoc
2020-07-20 10:38:14 -07:00
Victor Zverovich
d39d661b18
Workaround broken numeric_limits ( #1725 )
2020-07-20 08:39:15 -07:00
Victor Zverovich
c228bfe882
Improve docs
2020-07-20 07:56:20 -07:00
Khalil Estell
d11849bc0b
Add FMT_REDUCE_INT_INSTANTIATIONS flag ( #1781 )
...
* Remove <typename UInt> from int_writer
Reduce code bloat by removing multiple instantiation of int_writer based
on the <typename UInt> parameter.
Rationale:
- The only functions that gains a speedup by int size would be
int_writer::on_dec()'s call to count_digits which uses CLZ. Thus to
still take advantage of this speedup, we store the size of the int
so we can use a switch statement to call the correct count_digits.
- All other implementations of count_digits require some sort of looping
that terminates when the value hits zero regardless of what sized int
it is.
Caveats:
- There is a performance hit when dealing with and passing around
64-bit/128-bit values compared to 32-bit values on 32-bit platforms,
and with 64-bit values on 64-bit systems. But this should not reduce the
performance that dramatically.
- There is also a performance hit for on_dec() due to the addition of a
switch case. But, due to it size, this should reduce to a jump table.
Resolves #1778
* Add FMT_USE_SMALLEST_INT flag
When defined and set to zero, will use the largest available integer
container for writing ints. The has the benefit of reducing instances
the of int_writer class which will reduce the binary cost.
* Rename flag to FMT_REDUCE_INT_INSTANTIATIONS
Add comment above FMT_REDUCE_INT_INSTANTIATIONS definition describing
why a developer would use it.
* Move FMT_REDUCE_INT_INSTANTIATIONS to format.h
Co-authored-by: Khalil Estell <kammce@google.com>
2020-07-19 13:09:10 -07:00
Victor Zverovich
c08518a25b
Move make_args_checked to the public API
2020-07-19 10:23:46 -07:00
Victor Zverovich
9f0c003371
Simplify format string checks
2020-07-19 09:24:11 -07:00
Victor Zverovich
d615137ca0
Improve handling of buffer iterator
2020-07-19 09:02:26 -07:00
Victor Zverovich
b17d5c4f5d
Fix a regression in handling digit separators ( #1782 )
2020-07-18 08:31:47 -07:00
Victor Zverovich
eb90da2e82
Type erase output iterators
2020-07-18 07:50:29 -07:00
Victor Zverovich
9d3cd0afb2
Type erase output iterators
2020-07-17 12:57:50 -07:00
Victor Zverovich
c26349f4d2
Improve error reporting
2020-07-14 12:06:12 -07:00
Victor Zverovich
0097cf113d
Report unformattable type name more prominently
2020-07-13 08:46:53 -07:00
Victor Zverovich
c108ee1d59
Clarify a comment
2020-07-12 10:59:33 -07:00
Victor Zverovich
16cac46a09
Improve handling of streamable and convertible to bool types ( #1766 )
2020-07-12 08:34:45 -07:00
Victor Zverovich
415cd51913
direct_buffered_file -> ostream
2020-07-11 17:29:17 -07:00
Victor Zverovich
e1bfb59619
Fix handling of code units in compile
2020-07-11 09:03:21 -07:00
Victor Zverovich
ba8d98cbb7
Cleanup direct_buffered_file
2020-07-11 08:27:37 -07:00
Victor Zverovich
04a1f6e991
Improve handling of single code units in compile
2020-07-11 08:21:14 -07:00
Victor Zverovich
e4f57bfd7f
Add an overload of write for buffer_appender
2020-07-11 08:20:30 -07:00
Victor Zverovich
d870468159
Make append work with fixed-size buffer
2020-07-11 07:27:20 -07:00
Victor Zverovich
a2c4fed981
Double buffering no more
2020-07-10 20:35:14 -07:00
Victor Zverovich
36406509d9
Add a fixed buffer
2020-07-10 06:30:37 -07:00
Victor Zverovich
60c43e8703
Apply clang-format
2020-07-09 09:06:24 -07:00
Victor Zverovich
b998e0f30b
Reduce symbol sizes and simplify iterator use
2020-07-09 08:51:43 -07:00
Dmitriy Kurkin
1d2a556e1b
Fix undefined reference error
2020-07-07 06:37:17 -07:00
Victor Zverovich
f1dd2eb3c0
Bump version
2020-07-07 06:24:32 -07:00
Victor Zverovich
fbf3b943cc
Workaround a bug in gcc
2020-07-07 06:06:50 -07:00
Victor Zverovich
9f0b3afb79
Bump version in namespace
2020-07-06 09:47:27 -07:00
Victor Zverovich
569a9b3a7f
Bump version
2020-07-05 07:59:11 -07:00
Victor Zverovich
01309a34ab
Deprecate arg_formatter
2020-07-04 07:29:11 -07:00
Victor Zverovich
d8e0554b97
Disable numeric formatting by default
2020-07-03 10:35:49 -07:00
Victor Zverovich
56fed78149
FMT_NUMERIC_ALIGN -> FMT_DEPRECATED_NUMERIC_ALIGN
2020-07-03 08:53:01 -07:00
Victor Zverovich
56e63078ff
Make the n specifier an opt-in
2020-07-03 08:02:48 -07:00
Florin Iucha
31ce6bc702
Fix a conversion warning with Clang10 on Windows ( #1750 )
...
Fixes #1747
2020-07-03 05:53:42 -07:00
Tobias Hammer
5de62af604
Fix possible infinite recursion in FMT_ASSERT ( #1744 )
...
Use std::fprintf for assertion message output preventing infinite
recursion when output to stderr is limited or broken.
2020-07-01 08:28:27 -07:00
Victor Zverovich
f69b6eaabd
Add a simple buffered stream with no sync
2020-06-28 09:55:29 -07:00
Victor Zverovich
ba363b3a24
Use digit pairs as in unrolledlut
2020-06-27 12:05:38 -07:00
Victor Zverovich
98a7a8b405
Update changelog and disable internal
2020-06-26 19:07:33 -07:00
Victor Zverovich
3135d95fd9
Don't use non-portable attribute
2020-06-26 10:21:14 -07:00
Victor Zverovich
8630a8f5ff
Tweak the docs
2020-06-25 11:29:49 -07:00
Victor Zverovich
79c4b6bd70
Apply clang-format
2020-06-25 08:12:10 -07:00
Victor Zverovich
d130ee070f
Document format string compilation
2020-06-25 08:12:10 -07:00
Greg Sjaardema
d0f90b5be7
Spelling fixes
2020-06-24 06:29:54 -07:00
Greg Sjaardema
31c3a24266
Spelling fixes
2020-06-23 15:56:16 -07:00
Greg Sjaardema
613b3b459d
Spelling fixes
2020-06-23 15:55:31 -07:00
Victor Zverovich
978521bb81
Fix a compile error introduced in #1738
2020-06-23 15:17:43 -07:00
Victor Zverovich
4e94c649f9
Deprecate compile
2020-06-23 14:03:37 -07:00
Victor Zverovich
1a83443e6c
Add user-defined type support to compilation
2020-06-23 12:45:57 -07:00
Leonid Yuriev
8bef1c3b3a
Tweaks for EDG based compilers (Intel, nVidia, MCST/Elbrus, etc).
...
Using the __EDG_VERSION__ macro for checks related to EDG-based
compilers instead of a macros specific for each of ones.
2020-06-23 05:50:25 -07:00
Victor Zverovich
2cac8a9d2e
Reintroduce UDT support to fmt::to_string and test ADL
2020-06-21 09:21:07 -07:00
Victor Zverovich
9a4cc88426
Add FMT_COMPILE support to format_to
2020-06-20 15:15:41 -07:00
Victor Zverovich
5ddf9ee1bd
Streamline default FP formatting
2020-06-20 07:12:50 -07:00
Gabi Melman
5aa5c98738
Added #define WIN32_LEAN_AND_MEAN before including windows.h ( #1729 )
...
Co-authored-by: gabime <gmelman1@mgail.com>
2020-06-17 07:44:03 -07:00
Victor Zverovich
397ad1bec3
Optimize common case
2020-06-15 18:30:31 -07:00
Victor Zverovich
7431165f38
Make to_string bypass format
2020-06-15 17:55:16 -07:00
Victor Zverovich
ee4d4c7fd0
Inline compiled format
2020-06-14 11:38:39 -07:00
Victor Zverovich
ab2f8484e0
Finish text::format
2020-06-14 11:04:41 -07:00
Victor Zverovich
e900d735bb
Re-enable assert in format_decimal
2020-06-14 09:30:03 -07:00
Victor Zverovich
f4de7b684a
Fix ambiguity
2020-06-14 08:26:12 -07:00
Victor Zverovich
1f8f5450b5
Reuse format_decimal
2020-06-14 07:42:52 -07:00
Victor Zverovich
d702a68df2
Fix formatting of bool with FMT_COMPILE and add more tests
2020-06-14 07:16:50 -07:00
Victor Zverovich
e956a14e9e
Use write instead of format_int in to_string
2020-06-13 20:07:08 -07:00
Victor Zverovich
98dcc251eb
Undo branching reduction
2020-06-13 18:23:52 -07:00
Victor Zverovich
5b8641dddf
Undo branching reduction
2020-06-13 16:50:55 -07:00
Victor Zverovich
8c88abde64
Fix sign handling in 'L'
2020-06-13 06:57:19 -07:00
Victor Zverovich
23b976a615
Reduce branching
2020-06-12 19:46:00 -07:00
Victor Zverovich
9edee0e727
Optimize small string parsing
2020-06-12 19:22:33 -07:00
Victor Zverovich
a909d42b76
Fix a warning
2020-06-12 13:49:31 -07:00
Victor Zverovich
16637341b9
Enable compilation for all types
2020-06-12 13:27:21 -07:00
Victor Zverovich
2d71d7e030
Add a simple format string compilation API
2020-06-12 08:37:15 -07:00
Victor Zverovich
547f12ae63
Fix a warning ( #1722 )
2020-06-11 15:02:42 -07:00
Victor Zverovich
2453ee576a
Improve default formatting
2020-06-09 08:59:01 -07:00
Victor Zverovich
936a1833c2
Add default_arg_formatter
2020-06-08 08:14:34 -07:00
Victor Zverovich
f2c9cb6244
Fix a UB
2020-06-08 06:32:11 -07:00
Victor Zverovich
d3107f8551
Cleanup arg_formatter_base
2020-06-07 20:55:38 -07:00
Victor Zverovich
5e7c70e206
Simplify arg_formatter_base
2020-06-07 19:38:43 -07:00
Victor Zverovich
38cc68b3e5
Inline visitor
2020-06-07 08:36:33 -07:00
Victor Zverovich
6732ea5000
Make symbols readable
2020-06-07 07:49:11 -07:00
Victor Zverovich
57ddc77ce7
Make advance_to a noop for back_insert_iterator
2020-06-06 19:36:39 -07:00
Victor Zverovich
50bad7d62d
Optimize format string parsing
2020-06-06 10:15:19 -07:00
Victor Zverovich
8f7a824e47
Inline visit
2020-06-06 09:02:32 -07:00
Victor Zverovich
f11e968708
Optimize format string parsing
2020-06-06 08:15:33 -07:00
Victor Zverovich
09737dd83b
Optimize format handler
2020-06-06 07:17:02 -07:00
Victor Zverovich
d9e3d6e6ed
Move format_handler to detail
2020-06-06 06:38:48 -07:00
Victor Zverovich
795b47a7b5
Fix a warning ( #1712 )
2020-06-05 08:24:09 -07:00
rimathia
95c6ac0cc8
fix typo which caused the loss of the counting information when using a printf context with a truncating_iterator
2020-06-05 07:37:54 -07:00
Victor Zverovich
21409cfdda
Fix warnings
2020-06-04 07:50:07 -07:00
Victor Zverovich
88c8d534e7
Move digits10 to where they belong and add comments
2020-06-04 06:39:18 -07:00
Victor Zverovich
0f3eaeac0a
Fix a warning
2020-06-04 06:33:11 -07:00
Victor Zverovich
16aec06179
Cleanup arg_formatter_base
2020-05-31 10:58:52 -07:00
Victor Zverovich
1e1193590d
Fix format_decimal overloads
2020-05-31 10:12:34 -07:00
Victor Zverovich
0893c9c2ef
Inline parse_format_string
2020-05-30 20:30:18 -07:00
Victor Zverovich
3245145a41
Remove undocumented buffer_range and output_range
2020-05-30 13:07:52 -07:00
Victor Zverovich
7d22bebb6f
Remove uses of buffer_range
2020-05-30 06:50:45 -07:00
Victor Zverovich
5aabf1f715
Simplify copy_str
2020-05-29 17:59:08 -07:00
Victor Zverovich
19c5b5d159
Simplify arg_formatter
2020-05-29 16:53:12 -07:00
Victor Zverovich
519571edec
Simplify arg_formatter_base
2020-05-29 14:44:18 -07:00
Victor Zverovich
ac8dfd841f
Improve handling of separators
2020-05-29 08:15:44 -07:00
Victor Zverovich
2c6165a22b
Reduce the number of comparisons
2020-05-29 05:42:35 -07:00
Victor Zverovich
28639969ef
Use memcpy for copying digits
2020-05-28 22:33:08 -07:00
Lucian Petrut
51bf9cfacb
Fix Mingw support
...
If the ``_POSIX_`` flag is set, _fdopen will not be defined by
Mingw headers, which is addressed by this commit.
For what is worth, as opposed to ``fdopen``, ``_pipe`` *will*
actually have the ``_`` prefix when ``_POSIX_`` is set.
2020-05-26 06:39:22 -07:00
Victor Zverovich
1a716caf5d
Optimize common case
2020-05-25 19:16:35 -07:00
rimathia
8c8f74a870
fix zero flag for char types and make zero flag ignored if a precision is specified
2020-05-23 12:46:26 -07:00
Victor Zverovich
bc1b89da26
Temporarily revert parsing changes
2020-05-22 15:39:33 -07:00
Victor Zverovich
a7fb321ac6
Remove a redundant branch
2020-05-22 15:39:33 -07:00
Daniil Goncharov
8cadb96506
fix max/min macro ( #1697 )
2020-05-22 06:38:43 -07:00
Victor Zverovich
943532fece
Make ostream formatter work with compile-time format strings ( #1692 )
2020-05-20 14:59:57 -07:00
Victor Zverovich
a265e25b79
Optimize small string parsing
2020-05-19 13:44:22 -07:00
Victor Zverovich
2aa2526f64
Optimize small string concatenation
2020-05-19 11:45:09 -07:00
Victor Zverovich
8d78045e7c
Move void_t to where it's used
2020-05-18 10:46:25 -07:00
Barry Revzin
c66aae1652
Adding sentinel support to fmt::join(). ( #1689 )
2020-05-18 06:31:01 -07:00
Victor Zverovich
6d66de3805
Add c specifier support to integral types ( #1652 )
2020-05-17 08:44:59 -07:00
rimathia
6b219a58db
fix interaction of space flag and '+' flag, as well as '-' flag and '0' flag ( #1687 )
2020-05-17 04:27:18 -07:00
Victor Zverovich
c5ed73aab2
Add fmt::detail::buffer to the docs ( #704 )
2020-05-15 14:35:55 -07:00
Victor Zverovich
ea1cd9638c
Fix apidoc
2020-05-15 10:03:02 -07:00
Victor Zverovich
d3964d7b1e
Merge branch 'master' of github.com:fmtlib/fmt
2020-05-15 09:43:38 -07:00
Victor Zverovich
d18c6723a2
Update docs
2020-05-15 09:43:35 -07:00
rimathia
96c18b26c2
make plus flag for printf not be ignored for char argument ( #1683 )
...
* make plus flag for printf not be ignored for char argument
* clarify overwriting of alignment specifiers for printf with char argument
2020-05-15 06:45:51 -07:00
Vladimir Solontsov
922ea924bf
Make dynamic_format_arg_store reusable and add reserve() ( #1677 )
...
Implemented #1674 : make dynamic_format_arg_store reusable and add
reserve() for better memory menagement.
2020-05-12 11:00:42 -07:00
Victor Zverovich
8069265373
internal -> detail ( #1538 )
2020-05-10 07:34:30 -07:00
Victor Zverovich
963ee08310
Simplify named arguments
2020-05-09 16:43:31 -07:00
Victor Zverovich
02a6fe59fb
Named arguments go brrr
2020-05-09 13:22:38 -07:00
Victor Zverovich
de290f5c4c
Ditch internal::arg_map
2020-05-09 12:43:11 -07:00
Victor Zverovich
d0623de510
Bump version
2020-05-09 10:57:04 -07:00
Markus Werle
73e335ed38
Make implicit capture explicit for C++20 ( #1669 )
2020-05-09 10:55:37 -07:00
Vladimir Solontsov
68201831a5
Support named args in dynamic_format_arg_store ( #1655 ). ( #1663 )
...
Dynamic arguments storage. Implementation of enhancement from issue
#1170 .
2020-05-09 06:25:03 -07:00
Victor Zverovich
7f723fbcb8
Consistently namespace qualify size_t
2020-05-07 15:59:46 -07:00
Victor Zverovich
c06851456d
Purge basic_writer
2020-05-07 15:04:48 -07:00
Victor Zverovich
2f05054dd3
Purge basic_writer
2020-05-07 11:35:41 -07:00
Victor Zverovich
f0ce21164c
Revert enum change
2020-05-07 07:25:33 -07:00
peterbell10
44639b11fe
Fix some warnings ( #1667 )
...
* Fix sign-conversion warning
* Add missing "extern template" declarations for non-header-only build
* Use typed enums to fix Wsigned-enum-bitfield warnings
* Consolidate FMT_HEADER_ONLY code
2020-05-07 06:14:07 -07:00
Victor Zverovich
1c86a99e8f
Purge basic_writer
2020-05-06 18:46:01 -07:00
Victor Zverovich
8f511fc12f
Make copyfmt not throw ( #1666 )
2020-05-06 17:38:46 -07:00
Victor Zverovich
b0f47a13e6
Separate nonfinite formatting
2020-05-06 07:19:37 -07:00
Victor Zverovich
d6cea50d01
Remove deprecated APIs
2020-05-05 20:03:48 -07:00
Victor Zverovich
40bc7163fb
Move FMT_MAYBE_UNUSED to where it's actually used
2020-05-05 19:41:07 -07:00
Victor Zverovich
080e44d0bf
Fix inconsistent type detection ( #1662 )
2020-05-05 19:09:21 -07:00
James Beach
7e57cace5d
Exclude std::abort from compilation when compiling CUDA with Clang ( #1661 )
2020-05-04 06:21:21 -07:00
Victor Zverovich
7b66e2f219
Inherit arg_formatter_base from basic_writer
2020-05-03 21:05:45 -07:00
Victor Zverovich
bab3f58003
Refactor pointer formatting
2020-05-03 20:33:25 -07:00
Victor Zverovich
9cc7edfddc
Move int_writer to the namespace scope
2020-05-03 17:34:48 -07:00
Victor Zverovich
8d9d528bf5
Improve handling of alignment
2020-05-03 10:58:18 -07:00
Victor Zverovich
8efd1a8ef6
Improve handling of alignment
2020-05-03 10:08:57 -07:00
Victor Zverovich
a71bc9c825
Use '0' fill with numeric align for consistency with std::format
2020-05-03 09:52:31 -07:00
Victor Zverovich
60d85d598c
Suppress ubsan warning
2020-05-03 08:43:10 -07:00
Victor Zverovich
c3099beb6f
Cleanup
2020-05-02 22:00:34 -07:00
Victor Zverovich
cbb4cb8991
Remove undocumented deprecated APIs
2020-05-02 21:34:44 -07:00
Victor Zverovich
b85e9ac38b
Simplify vformat_to
2020-05-02 21:34:44 -07:00
Victor Zverovich
e3710ab972
FMT_CONSTEXPR -> constexpr
2020-05-02 21:34:44 -07:00
Victor Zverovich
d6abb2fa03
Reduce library size
2020-05-01 17:23:45 -07:00
Victor Zverovich
7ca89bf87a
Reduce template bloat in write_int
2020-05-01 07:56:57 -07:00
Victor Zverovich
3c114d091b
Fix a shadowing warning ( #1658 )
2020-05-01 07:00:25 -07:00
Victor Zverovich
bca82719ab
Pass iterator by value
2020-04-30 21:06:17 -07:00
Victor Zverovich
99da389627
Make write_padded non-members
2020-04-30 16:05:30 -07:00
Victor Zverovich
f19d667943
Bump fuzzer allocation limit
2020-04-30 08:45:50 -07:00
Victor Zverovich
3e69847616
Reduce branching in write_padded
2020-04-30 06:33:45 -07:00
Victor Zverovich
9ac1eebd47
Reduce library size
2020-04-29 17:37:05 -07:00
asraa
e2ff910675
Replace FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION with fmt-specific macro ( #1650 )
...
Signed-off-by: Asra Ali <asraa@google.com>
2020-04-29 09:12:43 -07:00
Victor Zverovich
f2ed03b919
Fix a warning ( #1649 )
2020-04-28 06:39:24 -07:00
Victor Zverovich
9dde9f0131
Reduce library size
2020-04-27 20:43:30 -07:00
Victor Zverovich
b1af642d1d
Reduce library size
2020-04-27 18:50:49 -07:00
Victor Zverovich
4a617f25c6
Clarify encoding conversion in chrono
2020-04-27 09:57:08 -07:00
Victor Zverovich
6f435f55c8
Improve compile time by using extern template ( #1452 )
2020-04-26 14:02:15 -07:00
Victor Zverovich
cb475cb884
Clarify why we don't check argument id
2020-04-26 13:38:42 -07:00
Victor Zverovich
1e1ac6e964
Check dynamic width/precision id at compile time ( #1614 )
2020-04-25 08:36:24 -07:00
Victor Zverovich
e51c449fe6
Revert "Check dynamic widht/precision id at compile time ( #1614 )"
...
This reverts commit 7d748a6f82
.
2020-04-25 07:43:56 -07:00
Victor Zverovich
0463665ef1
Don't access a C string past precision in printf ( #1595 )
2020-04-22 17:10:23 -07:00
Victor Zverovich
7d748a6f82
Check dynamic widht/precision id at compile time ( #1614 )
2020-04-22 14:45:37 -07:00
Victor Zverovich
2b75bd7ce6
Get rid of do_check_format_string
2020-04-22 12:15:29 -07:00
Victor Zverovich
4a1d5931cb
Simplify udl_formatter with FMT_STRING
2020-04-22 11:26:05 -07:00
Victor Zverovich
811b0f9054
Enable compile-time error tests
2020-04-22 11:00:20 -07:00
Victor Zverovich
56bc86ffac
Suppress bogus MSVC analysis warnings
2020-04-22 07:51:25 -07:00
Victor Zverovich
3f79357ef0
Fix a recent regression in handling max packed arguments
2020-04-22 07:15:19 -07:00
Victor Zverovich
63479c8519
Use a delegating ctor and add inlines
2020-04-20 19:17:16 -07:00
Victor Zverovich
e253b371b2
Don't generate RTTI for allocator
2020-04-19 15:57:48 -07:00
Victor Zverovich
0c86f467bc
Fix build on ancient gcc
2020-04-19 09:52:40 -07:00
Victor Zverovich
1929df4bc2
Simplify format_args
2020-04-19 09:21:39 -07:00
Victor Zverovich
a138221813
Always inline arg_data functions
2020-04-19 08:20:00 -07:00
Victor Zverovich
04e0dfd4bd
Always inline value ctors
2020-04-19 08:05:02 -07:00
Victor Zverovich
04cde756bc
Simplify checks
2020-04-19 07:35:19 -07:00
Victor Zverovich
c9a57b9a81
Fix incorrect assumptions about nul termination
2020-04-18 06:51:52 -07:00
Victor Zverovich
f46f5ecaf0
Reenable constexpr _compile on GCC 9
2020-04-17 06:10:57 -07:00
Victor Zverovich
6e8d7e2776
Don't use constexpr on Intel compiler ( #1628 )
2020-04-16 07:08:04 -07:00
Victor Zverovich
567ed03f88
Merge arg overloads and cleanup
2020-04-15 08:44:58 -07:00
Johan Norberg
c3fa333140
Remove warning in core.h with when compiling with gcc and -Wshadow
...
In file included from build/_deps/fmt-src/include/fmt/format.h:44:0,
from src/main.cpp:5:
build/_deps/fmt-src/include/fmt/core.h: In member function ‘const T& fmt::v6::internal::dynamic_arg_list::push(const Arg&)’:
build/_deps/fmt-src/include/fmt/core.h:1256:10: error: declaration of ‘node’ shadows a member of ‘fmt::v6::internal::dynamic_arg_list’ [-Werror=shadow]
auto node = std::unique_ptr<typed_node<T>>(new typed_node<T>(arg));
^~~~
build/_deps/fmt-src/include/fmt/core.h:1236:37: note: shadowed declaration is here
template <typename = void> struct node {
2020-04-15 07:31:24 -07:00
Johan Norberg
84898b4626
Remove warning in format.h when compiling with gcc and -Wshadow
...
build/_deps/fmt-src/include/fmt/format.h: In member function ‘decltype (ctx.out()) fmt::v6::formatter<fmt::v6::bytes>::format(fmt::v6::bytes, FormatContext&)’:
build/_deps/fmt-src/include/fmt/format.h:3251:58: error: declaration of ‘writer’ shadows a global declaration [-Werror=shadow]
internal::basic_writer<range_type> writer(range_type(ctx.out()));
^~~
build/_deps/fmt-src/include/fmt/format.h:2741:53: note: shadowed declaration is here
using writer FMT_DEPRECATED_ALIAS = internal::writer;
2020-04-15 07:31:24 -07:00
Victor Zverovich
538d83fd08
Cleanup named arguments
2020-04-15 06:28:41 -07:00
Victor Zverovich
8a4630686e
Improve handling of named arguments
2020-04-14 11:56:55 -07:00
Dmitriy Kurkin
a9d62d3f35
Add check for CompiledFormat to avoid ambiguous call
2020-04-14 05:59:02 -07:00
Victor Zverovich
fdcf7870a2
Add stack-based named argument storage
2020-04-13 08:03:51 -07:00
Victor Zverovich
07b4c246ea
Fix a typo
2020-04-12 08:18:47 -07:00
Victor Zverovich
e99809f29d
Fix ostream support in sprintf ( #1631 )
2020-04-12 07:53:17 -07:00
Victor Zverovich
3aab2171ed
Clean up basic_format_args
2020-04-11 08:22:53 -07:00
Victor Zverovich
7645ca0724
Clean up printf
2020-04-11 08:01:00 -07:00
Victor Zverovich
e30d8391e4
Suppress an MSVC warning ( #1622 )
2020-04-11 07:49:00 -07:00
Victor Zverovich
8cd8ef03eb
Simplify warning suppression
2020-04-11 06:17:31 -07:00
Victor Zverovich
bbb6b357c7
Add floating-point L specifier ( #1624 )
2020-04-10 07:16:20 -07:00
Victor Zverovich
36ea32640f
Suppress a bogus MSVC warning
2020-04-10 06:44:07 -07:00
Victor Zverovich
141a00d642
Define FMT_EXTERN_TEMPLATE_API on export
2020-04-09 11:54:55 -07:00
Victor Zverovich
3860edc5d9
Bump version
2020-04-08 14:48:14 -07:00
Victor Zverovich
7d01859ef1
Fix handling of unsigned char strings in printf
2020-04-08 13:05:42 -07:00
Greg Sjaardema
34b3f7b7aa
Avoid windows issue with min() max() macros
...
Including the ``windows.h`` file without defining ``NOMINMAX`` will define the `min()` and `max()` macros which will result in issues compiling any C++ code that uses any variant of `max`, for example `std::numeric_limits<std::streamsize>::max()` and many others. Although max() isn't used in Fmt anywhere, it is often used in codes that include a format include file so simply upgrading to the current version of lib::fmt will break the windows build which worked prior to the update...
2020-04-07 08:34:34 -07:00
Victor Zverovich
346500e70b
Fix gcc version check
2020-04-04 11:23:40 -07:00
Victor Zverovich
51c58a56ba
Bump version
2020-04-03 08:32:45 -07:00
Victor Zverovich
d1d653d895
Implement the L specifier
2020-04-02 06:58:38 -07:00
Victor Zverovich
73c8437485
Follow naming conventions
2020-04-01 09:30:28 -07:00
Victor Zverovich
e588b02b17
Fix posix-mock-test
2020-04-01 08:42:14 -07:00
Victor Zverovich
1a62711d01
Reduce binary size
2020-03-31 08:07:11 -07:00
Victor Zverovich
5b02881582
Merge branch 'master' of github.com:fmtlib/fmt
2020-03-28 09:46:44 -07:00
Victor Zverovich
80ce222ca6
Fix wide print overload ( #1609 )
2020-03-28 09:44:18 -07:00
Scott Ramsby
770a94edef
Use FMT_THROW macro where applicable
2020-03-27 12:17:22 -07:00
Victor Zverovich
2864e8432a
Update readme and add compatibility option
2020-03-26 07:18:27 -07:00
Victor Zverovich
21a295c272
Undo comment change
2020-03-25 08:14:31 -07:00
Victor Zverovich
96c68afe69
Fix -Wsign-conversion warnings
2020-03-25 07:46:00 -07:00
Scott Ramsby
664dd88e31
Enable FMT_STRING() use with types other than string literals
2020-03-24 12:56:21 -07:00
Victor Zverovich
69779b4ed6
Fix handling of small precision in general format
2020-03-24 09:01:57 -07:00
Victor Zverovich
08ca40ea91
Detect /utf-8 in MSVC
2020-03-22 08:19:38 -07:00
Victor Zverovich
dd97f4920c
Improve exception safety in dynamic_format_arg_store
2020-03-21 08:58:50 -07:00
Victor Zverovich
2951169481
Move FMT_USE_FLOAT and friends to fmt/format.h
2020-03-20 07:55:43 -07:00
Alberto Aguirre
d3e668418f
Allow disabling floating point support ( #1590 )
...
* Allow disabling floating point support
Add FMT_USE_FLOAT, FMT_USE_DOUBLE and FMT_USE_LONG_DOUBLE to allow a
user of the library to configure the float types they want to allow.
This is specially useful in embedded environements where code size is
important.
* Avoid conditional macros to disable float support
* Add is_supported_floating_point constexpr function
* Fix empty-body warning
2020-03-20 06:46:31 -07:00
Victor Zverovich
3cf619de55
Simplify dynamic_format_arg_store
2020-03-17 07:13:46 -07:00
Spirrwell
2559983e7a
Color formatting fixed for wide strings (fixes issue #1594 ) ( #1596 )
...
* Use std::char_traits::length for ansi_color_escape::begin
-Fixes issue #1594 https://github.com/fmtlib/fmt/issues/1594
2020-03-17 06:24:42 -07:00
Victor Zverovich
026f99178e
Simplify dynamic store
2020-03-16 19:10:41 -07:00
Victor Zverovich
9f70fc3e7a
Minor tweaks for dynamic_format_arg_store
2020-03-16 07:58:15 -07:00
Vladimir Solontsov
6012dc9ab4
Dynamic arguments storage. Implementation of enhancement from issue #1170 . ( #1584 )
2020-03-16 07:00:29 -07:00
Nikolay Rapotkin
85050aa2e6
Ability to join elements of std::initializer_list was added
2020-03-15 16:10:00 -07:00
Victor Zverovich
ff486a72a7
Allow leading zeros in precision ( #1579 )
2020-03-14 11:37:38 -07:00
Victor Zverovich
678341275b
Deprecate fmt::char8_t
2020-03-14 10:32:34 -07:00
Victor Zverovich
61c5a51604
Fix handling of empty tuples ( #1588 )
2020-03-14 07:41:08 -07:00
Dair Grant
02bfd8a9a5
Add FMT_HAS_CPP14_ATTRIBUTE / FMT_HAS_CPP17_ATTRIBUTE to test for language-specific attributes.
...
FMT_DEPRECATED is now defined as FMT_HAS_CPP14_ATTRIBUTE(deprecated), as this attribute was introduced in C++14.
FMT_FALLTHROUGH is now defined as FMT_HAS_CPP17_ATTRIBUTE(fallthrough), as this attribute was introduced in C++17.
FMT_MAYBE_UNUSED is defined as FMT_HAS_CPP17_ATTRIBUTE(maybe_unused), as this attribute was introduced in C++17.
FMT_MAYBE_UNUSED has been applied to fix a couple of -Wunused-member-function warnings from clang.
2020-03-13 09:03:52 -07:00
Victor Zverovich
3c24052cf1
Workaround 'cannot call member function without object' error on gcc 4.9
2020-03-11 17:39:32 -07:00
Victor Zverovich
f72a905eb3
Fix handling of volatile enums
2020-03-11 08:40:57 -07:00
Victor Zverovich
941d5e147a
Workaround broken fallthrough attribute in the PGI compiler ( #1583 )
2020-03-11 07:56:23 -07:00
Victor Zverovich
ee2b828b9a
Tweak a comment
2020-03-09 11:27:14 -07:00
Pramod Kumbhar
5bb8856655
Workaround for broken [[deprecated]] in PGI compiler ( #1581 )
...
* Workaround broken [[deprecated]] in PGI compiler
- similar to Intel and NVCC, add workaround for PGI compiler
2020-03-09 11:25:38 -07:00
Victor Zverovich
db4a6cfbf9
is_static_compiled_format -> is_compiled_format
2020-03-06 07:25:34 -08:00
Dair Grant
29a1ea795a
Fix clang -Wdisabled-macro-expansion warning from FMT_STRING_IMPL.
...
FMT_STRING_IMPL has an internal helper named FMT_STRING, however FMT_STRING is also the name of the macro that invokes FMT_STRING_IMPL.
Renaming this helper avoids the appearance of a recursive macro.
2020-03-06 07:00:47 -08:00
Victor Zverovich
8a06ca84c7
Fix ambiguous overloads of format & format_to
2020-03-05 12:22:43 -08:00
Victor Zverovich
153f753bde
Deprecate undocumented _u suffix
2020-03-04 19:20:19 -08:00
Victor Zverovich
eafd079868
Improve width computation
2020-03-04 17:17:34 -08:00
Victor Zverovich
197a5c3721
Apply clang-format
2020-03-04 08:37:00 -08:00
refnum
68742e1d87
Fix clang -Wsign-conversion warning in grisu_count_digits. ( #1573 )
...
grisu_count_digits is only used by grisu_gen_digits, which assigns the unsigned result to a (signed) int.
Although grisu_count_digits always returns a positive integer this keeps its return type in sync with the type its result is assigned to.
2020-03-04 06:48:41 -08:00
Victor Zverovich
1e8493196e
Make compile-time checks in format_to handle references
2020-03-01 07:57:34 -08:00
refnum
58e6c84f5a
Fix simple -Wsign-conversion cases. ( #1571 )
...
* Fix -Wsign-conversion in bigint::subtract_aligned.
n is assigned a size_t, and only used for comparisons with j.
j is assigned 0, compared to n (size_t), and passed to basic_memory_buffer::operator[] (size_t).
* Fix -Wsign-conversion in bigint::assign.
num_bigits is initialised to 0, is only ever incremented, and is passed to basic_memory_buffer::operator[] (size_t) and basic_memory_buffer::resize (size_t).
2020-03-01 07:22:15 -08:00
refnum
75a4525e5f
Move FMT_CLANG_VERSION definition to core.h ( #1568 )
...
Previously format.h defined FMT_CLANG_VERSION after including core.h, however core.h tests FMT_CLANG_VERSION when it defines FMT_API.
2020-02-29 17:19:34 -08:00
refnum
6ccb2e241b
Add FMT_NORETURN to assert_fail prototype. ( #1569 )
...
When building with -Werror,-Wmissing-noreturn clang identifies that assert_fail could be declared with the 'noreturn' attribute.
2020-02-29 17:17:55 -08:00
Victor Zverovich
bed134a4aa
Tentative fix for default template param in friend error
2020-02-27 15:29:46 -08:00
Victor Zverovich
b2d3a86ec0
Make FMT_ASSERT work in constexpr on clang 4.0.1
2020-02-26 06:26:46 -08:00
fghzxm
2161a73f2b
Fix FMT_FORMAT_AS const specifier position ( #1554 )
...
The current `FMT_FORMAT_AS` macro will make `formatter<Char *>::format`
have the first argument type `const Char *&` which is incorrect an
should be `Char *const &`. This pull request fixes that by changing the
first argument type in the macro definition body from `const Type &` to
`Type const &`.
2020-02-23 07:27:22 -08:00
IkarusDeveloper
e00997b004
improved use of find ( #1560 )
...
* improved use of find
*begin is supposed to be different from '{' when this find is used, so we can avoid checking it.
2020-02-21 14:43:06 -08:00
dominicpoeschko
0415cf2350
add const begin and end overload to buffer ( #1553 )
...
* add const begin and end overload to buffer
since there is a const overload for data I think there should also be one for begin and end
2020-02-19 14:59:50 +01:00
Victor Zverovich
3bafd0749b
Fix to_string docs
2020-02-15 09:51:35 +01:00
Victor Zverovich
f733882b55
Remove misleading FMT_USE_WINDOWS_H
2020-02-14 14:09:27 +01:00
Victor Zverovich
dc22360c34
Workaround broken UDL templates in GCC < 6.4
2020-02-10 17:08:14 +01:00
Victor Zverovich
1f1b50707c
Make formatter override implicit conversion to a C string
2020-02-07 19:24:36 -08:00
Victor Zverovich
24924128e3
Fix a link error in gcc8 ( #1548 )
2020-02-07 18:34:05 -08:00
Victor Zverovich
b55ea58705
string_view::char_type -> value_type ( #1539 )
2020-02-01 12:27:44 -08:00
Milian Wolff
314e15001f
Fix symbol visibility on Linux when compiling with -fvisibility=hidden ( #1535 )
...
Make FMT_API symbols use the default visibility on non-Windows
platforms. Otherwise, one cannot use the generated fmt library when
compiling globally with -fvisibility=hidden.
Fixes compile errors like:
```
../3rdParty/fmt/include/fmt/core.h:757: error: undefined reference to 'fmt::v6::internal::assert_fail(char const*, int, char const*)'
```
Note that the symbol exists, but is local:
```
$ nm -C libfmtd.so.6.1.3 | grep assert_fail
U __assert_fail
0000000000233ffa t fmt::v6::internal::assert_fail(char const*, int, char const*)
```
With this patch, the compile error is gone and the symbol is properly
exported:
```
$ nm -a bin/libfmtd.so -C | grep assert_fail
U __assert_fail
00000000002366ba T fmt::v6::internal::assert_fail(char const*, int, char const*)
```
Change-Id: I96054e622d9a2ae81907e1b01a1033e629767a91
2020-01-30 06:26:18 -08:00
Victor Zverovich
f499b393d1
Apply coding conventions
2020-01-26 19:48:48 -08:00
zeffy
1acb73f970
Fix formatting std::chrono::duration types to wide strings ( #1533 )
...
* Fix formatting chrono durations to wide strings
* Make format buffers const correct
* Add FormatWide chrono test case
* Fix incorrect wide encoding of 'µs'
I think might be a source file encoding issue, so I used \u00B5 instead.
* Update FormatWide test to use proper encoding of µs
* Revert changes to format_localized's parameters
* Use different overload of `std::time_put<T>::put` to avoid needing a format string
* Use utf8_to_utf16 instead of having redundant overloads of get_units
* Revert some minor changes
* Remove FMT_CONSTEXPR from expression
This should hopefully fix compilation on VS <2019
* Make suggested changes from code review
* Run clang-format on chrono.h
* Make sure unit isn't null before constructing a string_view from it
2020-01-23 18:48:36 -08:00
Victor Zverovich
09a13244c8
Disallow passing non-string-literals to FMT_STRING
2020-01-22 21:05:46 -08:00
Victor Zverovich
419db8baa1
Fix length computation of constexpr C strings
2020-01-22 18:25:07 -08:00
dspc-douglas
9fc4161f5e
fix interal compiler error when building with mingw
2020-01-22 18:14:46 -08:00
Greg Sjaardema
25d6916b3a
Fix so can work without locale defined
...
If `FMT_STATIC_THOUSANDS_SEPARATOR` defined, then locale is not included or defined, so this call will be unresolved. I think this is the correct fix based on the code in `format-inl.h` and `format.h`
2020-01-22 07:26:03 -08:00
Victor Zverovich
fd1cabe464
Workaround a bogus MSVC warning
2020-01-20 06:56:22 -08:00
Victor Zverovich
b4218aa0f8
Test invalid fill
2020-01-19 16:52:36 -08:00
Victor Zverovich
8a3a8177d6
Bump version
2020-01-19 15:34:30 -08:00
Victor Zverovich
e5f2f8ce7a
Add variable-width fill support ( #1109 )
2020-01-19 14:49:51 -08:00
Victor Zverovich
75765bfad5
Avoid unnecessary unsigned overflows ( #1515 )
2020-01-18 08:19:27 -08:00
Victor Zverovich
9bd9738da0
Remove static and simplify names
2020-01-18 07:43:59 -08:00
Victor Zverovich
1f110702a1
Remove redundant braces
2020-01-15 15:07:30 -08:00
Jason Turner
4ccbe4b5f2
Avoid namespace clash for fmt
...
## Problem
In the case of an existing `fmt` namespace (in my project this looks like `Project::fmt`) it is possible to get a namespace clash in debug builds (MSVC 2017)
## Proposed Solution
When referencing `fmt` internally, be explicit that it is relative to the global namespace using `::fmt`
2020-01-15 11:23:24 -08:00
Greg Sjaardema
40638a75b3
Use C++11 compatible std::is_same operations
...
The `operator()` member function of `std::is_same` was added in C++14. For C++11, the `::value` needs to be used instead.
2020-01-15 11:20:47 -08:00
Victor Zverovich
c8dd9cc99d
Use type_identity to block unnecessary template argument deduction (thanks Tim Song)
2020-01-15 10:27:50 -08:00
Greg Sjaardema
4bbe57cebf
Work-around for nvcc
...
The nvcc compiler (at least up to 9.2) defines `__SIZEOF_INT128__`, but doesn't support 128-bit integers on device code:
```
error: "fmt::v6::format_arg_store<fmt::v6::basic_format_context<std::back_insert_iterator<fmt::v6::internal::buffer<char>>, char>, const char *, int, const char *>" contains a 128-bit integer, which is not supported in device code
```
2020-01-15 07:31:58 -08:00
Greg Sjaardema
55b6130055
Use C++11-compatible operations
...
The `std::is_base_of<T,U>()` and `std::is_reference<T>()` member functions were added in C++14. To maintain C++11 compatibility, use the `::value` instead.
Current code fails on intel-17 and other compilers if using strict C++11
2020-01-15 07:23:39 -08:00
Greg Sjaardema
ae3ea156ea
Fix for older versions of intel compiler
...
The intel-17 and intel-18 compilers seem to require that `u` be `const`:
```
/src/fmt/format.h(226): warning #437 : reference to local variable of enclosing function is not allowed
char data[sizeof(u)];
```
If `u` is declared as `const auto u =1u` instead of just `auto u=1u`, the file compiles with no warnings.
2020-01-14 17:56:06 -08:00
Tobias Hammer
77165fdf85
Use FMT_NOEXCEPT instead of noexcept directly
...
Otherwise breaks on compilers without noexcept support
2020-01-14 09:31:31 -08:00