Victor Zverovich
7111a1eb9f
Bump version
2019-12-01 16:50:07 -08:00
Victor Zverovich
1cbae6e9ba
Put vprint declarations in one place
2019-12-01 14:43:51 -08:00
Victor Zverovich
4b120b68ae
Clean up includes
2019-12-01 10:19:07 -08:00
Victor Zverovich
62da1db62a
Avoid wchar_t instantiations
2019-12-01 07:34:09 -08:00
Chris Martin
3bc28fcc6b
Squelch MSVC warning exporting subclasses of runtime_error
...
When compiling {fmt} as a DLL, MSVC complains that we are exporting
classes that inherit from "std::runtime_error", which we are not
exporting.
In this case, it's not really a problem because that symbol is already
exported via the C++ stdlib. So we just add a pragma to silence the
warning.
2019-11-30 12:00:25 -08:00
Victor Zverovich
ba6e330fd3
digits -> num_bits
2019-11-30 08:41:07 -08:00
Victor Zverovich
6037b3cae9
Fix dangling else problem in FMT_ASSERT
2019-11-30 07:52:33 -08:00
Victor Zverovich
fafb03fa6d
Fix handling of fallback_uintptr
2019-11-30 07:31:38 -08:00
Victor Zverovich
2f9acd1838
Remove dependency on <cassert>
2019-11-29 09:37:18 -08:00
Victor Zverovich
aaf829bfb1
Fix fallback pointer formatting on big endian, take 2
2019-11-29 07:07:08 -08:00
Victor Zverovich
b994a0ab13
Fix handling of missing fraction in snprintf_float
2019-11-29 06:17:29 -08:00
Victor Zverovich
bb205d940d
Fix fallback pointer formatting on big endian
2019-11-29 05:15:59 -08:00
Florin Iucha
ea54b21e78
Remove invalid noexcept annotation
...
buffered_file& operator=(buffered_file&& other) calls close which can
throw.
2019-11-28 06:43:08 -08:00
Florin Iucha
9cbf4b087c
Fix -Wconversion warnings
2019-11-28 06:43:08 -08:00
Victor Zverovich
c3be0f593d
Refactor floating-point formatting
2019-11-27 08:08:22 -08:00
Victor Zverovich
c68703c9f4
float_spec -> float_specs
2019-11-26 15:53:24 -08:00
Victor Zverovich
9a21728b0a
Remove gen_digits_params
2019-11-26 11:27:53 -08:00
Victor Zverovich
7ffa62db18
Fix precision handling in snprintf_float
2019-11-25 20:00:10 -08:00
Victor Zverovich
0d07db1234
Fix handling of streamable and convertible to string types
2019-11-25 16:46:33 -08:00
Victor Zverovich
d19ed6716d
Fix hexfloat buffer reallocation
2019-11-25 15:54:04 -08:00
Victor Zverovich
99b6e928d4
Fix handling of types with deleted rvalue conversion to string ( #1421 )
2019-11-25 08:30:47 -08:00
Victor Zverovich
57cd3f72e9
Update comment
2019-11-24 15:34:33 -08:00
Victor Zverovich
111fc127fe
Remove fp::operator-
2019-11-24 13:28:15 -08:00
Victor Zverovich
6003ec3f25
Simplify Grisu implementation
2019-11-24 13:24:28 -08:00
Victor Zverovich
75fff1db64
Minor cleanup
2019-11-24 08:43:56 -08:00
Victor Zverovich
28d7191c27
Don't print trailing zero with fixed, precision=0, and showpoint ( #1417 )
2019-11-24 08:23:10 -08:00
Victor Zverovich
43271ba8e8
Handle null terminator at the end of the buffer
2019-11-24 07:15:25 -08:00
Victor Zverovich
4cf59ce734
Integrate Grisu and sprintf digit generators
2019-11-23 06:56:29 -08:00
Victor Zverovich
7395472dde
Refactor floating-point formatting
2019-11-22 18:49:19 -08:00
Victor Zverovich
ded1e7679e
Refactor floating point formatting
2019-11-22 08:22:22 -08:00
Victor Zverovich
c7edd8e570
Cleanup FP formatting
2019-11-20 13:17:03 -08:00
Victor Zverovich
75108a56f6
Don't print % for nan and inf
2019-11-20 12:26:48 -08:00
Victor Zverovich
3e1f70fe02
Merge write_fp into write
2019-11-20 12:20:17 -08:00
Victor Zverovich
125fc5e520
Update comment
2019-11-20 11:45:25 -08:00
Victor Zverovich
4de41aa655
Move basic_writer::write_fp to where it belongs
2019-11-20 08:22:34 -08:00
Victor Zverovich
404a880bd4
Make parse_arg_id more readable
2019-11-20 08:12:23 -08:00
Victor Zverovich
092d2dc7b2
Merge safe-duration-cast.h into chrono.h
2019-11-20 08:05:18 -08:00
Victor Zverovich
093e554211
Remove redundant qualification
2019-11-20 07:44:34 -08:00
Ivan Shynkarenka
d0696b0aa6
warning C4456: declaration of 'num_digits' hides previous local declaration
2019-11-20 06:43:46 -08:00
Victor Zverovich
66d7746bb3
Use grisu for exponent notation
2019-11-19 16:55:11 -08:00
Victor Zverovich
e9bff78814
Don't parse % unless FMT_DEPRECATED_PERCENT is set
2019-11-19 11:54:18 -08:00
Victor Zverovich
57b6f2966d
Deprecate the fmt macro
2019-11-19 11:28:17 -08:00
Victor Zverovich
d79493e5ee
Remove Grisu2
2019-11-19 09:50:59 -08:00
Victor Zverovich
5420bcce2d
Make % an opt-in to improve compatibility with std::format
2019-11-18 08:04:43 -08:00
Victor Zverovich
56a2e2075c
Refactor float spec parsing
2019-11-18 07:37:36 -08:00
Victor Zverovich
ed117baa4f
Replace bool with float_format and add exponential
2019-11-17 15:52:13 -08:00
Victor Zverovich
f26446290b
Move float_spec_handler to internal namespace and update asserts
2019-11-17 13:47:00 -08:00
Victor Zverovich
f67783d7e6
Clarify that numeric alignment is deprecated
2019-11-17 10:24:55 -08:00
Victor Zverovich
c01ec54fde
Document and clean basic_format_parse_context
2019-11-17 09:28:26 -08:00
Victor Zverovich
b0c2ab93fa
Bump version
2019-11-17 08:35:26 -08:00
Victor Zverovich
9b7fe2a4a1
Don't use POSIX API on UWP
2019-11-17 08:29:08 -08:00
Daniel Laügt
c58b7d9c2f
Use overridden locale in ostream
2019-11-17 06:22:22 -08:00
Victor Zverovich
dcde089b4e
Improve POSIX API detection
2019-11-15 07:28:02 -08:00
David P. Sicilia
2145a7bdcc
Move has_formatter into the public fmt namespace. ( #1407 )
...
* Move has_formatter into the public fmt namespace.
This will allow users to do SFINAE-friendly checks for
the formattability of a type.
Fixes #1369
2019-11-14 07:08:24 -08:00
Victor Zverovich
0d6dd0cc6a
Correct basic_string_view from string ctor
2019-11-14 05:57:23 -08:00
Rosen Penev
1f918159ed
[clang-tidy] Replace deprecated C headers
...
Found with modernize-deprecated-headers
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
6868f888b2
[clang-tidy] Add missing override
...
Found with hicpp-use-override
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
87cd545a1e
[clang-tidy] Replace {} with = default
...
Found with hicpp-use-equals-default
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
12f9437e22
[clang-tidy] Use auto
...
Found with hicpp-use-auto
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
bb0c8bfea8
[clang-tidy] Add noexcept where move is used
...
Found with performance-noexcept-move-constructor
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
e6e8298904
[clang-tidy] Add parentheses to macro arguments
...
Found with bugprone-macro-parentheses
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
0f0848e4f4
[clang-tidy] Use braced init list
...
Found with modernize-return-braced-init-list
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
a1fb5c7337
[clang-tidy] Changes suffixes to uppercase
...
Found with hicpp-uppercase-literal-suffix
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Rosen Penev
8a411c2bca
[clang-tidy] Turn deleted function to public
...
Found with modernize-use-equals-delete
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-11-08 09:35:26 +00:00
Victor Zverovich
0047dc10a2
Mark apidoc as rst
2019-11-06 15:16:02 +00:00
daniel
f1559e1d56
Use grouping() from locale for specifier 'n'
2019-11-05 07:22:12 +00:00
Victor Zverovich
ffd05e65ed
basic_parse_context -> basic_format_parse_context per standard and document
2019-11-05 07:13:58 +00:00
Attila Tajti
0889856d61
Fix UTF-8 truncation
2019-11-03 11:53:15 +00:00
Victor Zverovich
d6eede9e08
Remove redundant ctor
2019-11-01 12:09:04 -07:00
Victor Zverovich
213e09644f
Workaround X11 madness ( #1388 )
2019-11-01 08:47:11 -07:00
Victor Zverovich
6bfc9af8c9
Add double support to compile
2019-10-30 20:45:29 -07:00
Victor Zverovich
3487f1b9cd
Always inline grisu_gen_digits and disable grisu2 by default
2019-10-30 16:52:00 -07:00
Victor Zverovich
791294d17b
Apply get_cached_power optimization by jk-jeon
2019-10-30 08:07:01 -07:00
Victor Zverovich
8e700619b7
Simplify format_handler
2019-10-30 07:02:38 -07:00
Victor Zverovich
58c6f8c7f5
Make unsigned-integer-overflow sanitizer happy ( #1377 )
2019-10-28 14:41:09 -07:00
Victor Zverovich
40414b3446
Don't emit trailing zeros in exponential notation ( #1376 )
2019-10-28 12:31:00 -07:00
Victor Zverovich
b7a157401e
Simplify grisu_writer
2019-10-23 13:52:09 -07:00
Victor Zverovich
7aa58c30bf
Simplify NVCC checks
2019-10-23 11:32:35 -07:00
Victor Zverovich
8e9bffa986
clang-format
2019-10-23 11:20:21 -07:00
Victor Zverovich
ce4d87acd4
Remove obsolete comment and clang-format
2019-10-23 11:15:43 -07:00
Ivan Shynkarenka
21acc2af43
Fix more Visual Studio 2019 pedantic warnings ( #1371 )
...
* format-inl.h(444,1): warning C4804: '>>': unsafe use of type 'bool' in operation
format.h(2808,1): warning C4127: conditional expression is constant
* More fixes for VS2019 pedantic warnings
* Fix "conditional expression is constant" VS2019 warning in more specific way
* Use const_check to silence constexpr warning
2019-10-22 17:13:03 -07:00
kent-tri
00669427df
Patch compiler error when building using nvcc
...
If you compile using `nvcc` and pass the option `--expt-relaxed-constexpr` it will crash with an internal compiler error. This modification prevents using `constexpr` in `fmtlib` when compiling using `nvcc` and prevents the crash.
2019-10-22 08:34:52 -07:00
Victor Zverovich
d39ebf3ff2
Optimize counting
2019-10-21 06:57:42 -07:00
Victor Zverovich
6498bc6d31
Simplify grisu_writer
2019-10-20 19:29:24 -07:00
Victor Zverovich
a967dcbe20
Improve handling of signs
2019-10-20 19:05:38 -07:00
Victor Zverovich
8498bc97dd
Initialize all the things
2019-10-20 17:53:18 -07:00
Victor Zverovich
e2ea940673
Handle assymetric boundaries
2019-10-20 07:55:05 -07:00
Victor Zverovich
2bc5585ff0
Fix computing lower boundaries for smallest normalized double
2019-10-18 17:56:52 -07:00
Victor Zverovich
bb728a572a
packed_arg_bitsize -> packed_arg_bits and remove packed_arg_mask
2019-10-18 10:06:57 -07:00
Victor Zverovich
36d1390e67
Implement round half to even
2019-10-18 07:21:12 -07:00
Orivej Desh
599e0aef45
Support single precision floats in grisu formatting
...
Fixes #1336
2019-10-18 07:08:41 -07:00
Ivan Shynkarenka
91f7619cc9
Fix Visual Studio 2019 pedantic warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
2019-10-14 08:55:18 -07:00
Victor Zverovich
c4dc6bef24
Apply clang-format
2019-10-13 18:31:09 -07:00
Victor Zverovich
646966e973
Reduce bigint capacity
2019-10-13 14:06:38 -07:00
Victor Zverovich
a5abe5d95c
Handle negative exponent and nonnegative power
2019-10-13 13:16:09 -07:00
Victor Zverovich
1cbc5fa6cb
Handle negative exponent and rename value/pow10 to numerator/denominator
2019-10-13 12:50:48 -07:00
Victor Zverovich
f7a5748fd3
Partially implement (FPP)^2
2019-10-13 09:28:35 -07:00
Victor Zverovich
0e94b931a2
Fix a linkage error introduced by #1360 ( #1362 )
2019-10-13 08:23:47 -07:00
Victor Zverovich
5e58eb97b1
Implement add_compare
2019-10-13 08:05:06 -07:00
Orivej Desh
3a15ea3ea5
Rename write_double to write_fp
...
It handles all floating point types, not just doubles.
2019-10-12 11:41:24 -07:00
Orivej Desh
b87ac4d840
Distinguish float from double
2019-10-12 11:41:24 -07:00
Orivej Desh
a927dda9bb
Use words for packed constants
2019-10-12 11:41:24 -07:00
Orivej Desh
dd11d45847
Encode types using 5 bits
...
This is needed to support more than the current 16 types.
2019-10-12 11:41:24 -07:00
Victor Zverovich
b55551f900
Implement more comparison operators
2019-10-12 09:22:24 -07:00
Deniz Evrenci
96f91428c6
Add defaulted copy and move operations to format_error and system_error ( #1347 )
...
* Avoid weak vtables by providing a private virtual member function
* Add warning Wweak-vtables to clang when FMT_PEDANTIC is on
* Add defaulted copy and move operations to format_error and system_error
Compiler generated copy operations are deprecated and move operations
are not generated altogether.
* Add warning Wdeprecated to clang when FMT_PEDANTIC is on
2019-10-11 10:44:20 -07:00
Orivej Desh
b732f28c00
Deduplicate color vformat and vprint
...
After #1351 they became essentially the same.
2019-10-11 10:42:11 -07:00
Tanki Zhang
a82c1dc6d9
use memory_buffer to make color print behave atomic #1348 ( #1351 )
2019-10-10 08:28:56 -07:00
Victor Zverovich
2730e90186
Fix compile error in printf with gcc9 ( #1354 )
2019-10-09 18:58:40 -07:00
Victor Zverovich
e4d6d9d7c8
Implement divmod
2019-10-09 13:40:50 -07:00
Orivej Desh
b66bb6b71f
Fix undefined in core-test and printf-test ( #1345 )
...
* Fix undefined in core-test
Fixes "reference binding to null pointer" in BufferTest.Ctor
buffer.operator[] attempts to return a reference to `buffer.ptr_[0]` when `ptr_`
in `mock_buffer<int> buffer` is null.
* Fix undefined in printf-test
Fixes "signed integer overflow" in PrintfTest.Length
This occurs in `TestLength<long long>("ll")`, since its minimum value minus one
does not fit in long long.
* Fix undefined in printf %0$
Printf counts arguments from 1.
Fixes "shift exponent -4 is negative" in PrintfTest.InvalidArgIndex.
`do_get` is called with index -1 when `basic_printf_context.arg` is called with
id 4294967295 when basic_printf_context::get_arg subtracts 1 from arg_index 0 in
the format string "%0$d".
2019-10-08 06:28:39 -07:00
Victor Zverovich
b60114533f
Implement more bigint operations
2019-10-06 12:49:23 -07:00
Victor Zverovich
c41cea8b18
Initial implementation of square
2019-10-05 16:37:52 -07:00
Victor Zverovich
0c7650373c
Fix handling of types convertible to std::string_view
2019-10-05 06:58:37 -07:00
Victor Zverovich
0fc7bd1573
Fix ambiguity for types with dodgy conversions
2019-09-28 11:35:20 -07:00
Jeremy Ong
b4f1988c4b
Provide overload for fmt::join
that handles std::tuple
s
...
Address enhancement request #1322 .
The overload is provided in `ranges` (original `fmt::join` exists
currently in `format.h` for historical reasons.
Tests for prvalue and lvalue tuple arguments as well as the empty
tuple are provided in `ranges-test.cc`.
2019-09-27 14:05:35 -07:00
mwinterb
ac59d9f3a4
workaround VS2019 Update 3 compiler bug. ( #1328 )
2019-09-24 11:29:29 -07:00
Daumantas Kavolis
89b0c71fa9
fix name clash in header-only mode
2019-09-24 06:25:21 -07:00
Daumantas Kavolis
f6a783ad2e
fix get
2019-09-24 06:25:21 -07:00
Victor Zverovich
ccc8f5db02
Disable integral operator<< ( #1316 )
2019-09-23 20:34:08 -07:00
Victor Zverovich
f29901097f
Don't use const char* overload of operator<< ( #1309 )
2019-09-23 12:35:08 -07:00
Victor Zverovich
758446c80d
Fix a warning ( #1319 ) and simplify code
2019-09-19 16:00:40 -07:00
Victor Zverovich
c6d1a94a9f
Fix fallback_format ( #1306 )
2019-09-09 17:28:53 -07:00
Victor Zverovich
0656045d02
Fix format overload that takes text_style ( #1305 )
2019-09-08 18:41:02 -07:00
Victor Zverovich
c85ae23c73
Add max_value
2019-09-08 09:21:30 -07:00
Victor Zverovich
b3bf665764
Implement multiplication and part of assignment from pow of 10
2019-09-08 08:27:00 -07:00
Victor Zverovich
0887887e23
Implement left shift
2019-09-07 18:10:36 -07:00
Victor Zverovich
ac71d853be
Refactor normalize and clean up
2019-09-07 17:28:59 -07:00
Victor Zverovich
6649b8e0ca
value -> bigit
2019-09-07 14:23:19 -07:00
Victor Zverovich
56b5c192a0
Add a bigint stub and reenable grisu
2019-09-07 13:50:22 -07:00
Victor Zverovich
b2f0b6e44e
Tweak comment
2019-09-07 08:43:35 -07:00
Victor Zverovich
3d9f3c163b
Integrate new format string compilation
2019-09-07 07:01:51 -07:00
gabime
df4dcf2ece
Fixed vs 2015 warning about unused variable when grisu is off
2019-09-06 11:29:56 -07:00
Victor Zverovich
f7a4b4ab91
Make numeric alignment optional
2019-09-06 09:43:53 -07:00
Victor Zverovich
611cf0b3c6
Format octal 0 as 0
2019-09-06 07:03:47 -07:00
Victor Zverovich
1882b9687b
Reduce the numer of ifdefs with an empty (u)int128_t fallback
2019-09-05 18:03:47 -07:00
Deniz Evrenci
6de0454b42
Add support for built-in __int128 when available
2019-09-04 07:05:08 -07:00
Deniz Evrenci
16e3c48bb0
Move definition of FMT_USE_INT128 to core.h
2019-09-04 07:05:08 -07:00
Deniz Evrenci
8ce5f680f2
Rename internal::is_integral and internal::is_arithmetic
...
To reserve space for the type traits sharing the same name as the ones
from standard library.
2019-09-04 07:05:08 -07:00
Victor Zverovich
2fd8f9ec8a
Initial implementation of optimal compile-time formatter generation
2019-09-02 19:50:30 -07:00
Victor Zverovich
a128b5b2cb
Simplify format string compilation
2019-09-02 06:48:19 -07:00
Victor Zverovich
466128de00
Remove unused code and refactor
2019-09-01 13:08:53 -07:00
Victor Zverovich
22e98a5b6a
Make compile work with user-defined types
2019-09-01 11:49:27 -07:00
Victor Zverovich
f18a3f36a7
Remove string_view_metadata
...
string_view_metadata was introduced to make compiled format relocatable.
However, format string compilation is an optimization and therefore
adding overhead and extra complexity for relocation is undesirable.
In most cases the string will be either static or outlive compilation
and formatting and if it doesn't, it's possible to make compiled
representation relocatale by other means.
2019-09-01 11:10:49 -07:00
Victor Zverovich
7cad33563c
Refactor format string compilation
2019-09-01 10:28:41 -07:00
Victor Zverovich
e1ab6bc006
Simplify format string compilation
2019-09-01 08:31:32 -07:00
Victor Zverovich
422e7b9d70
Fix compile-time checks for user-defined types ( #1292 )
2019-08-31 08:35:38 -07:00
Victor Zverovich
9a56a608ee
Fix warnings ( #1288 )
2019-08-31 08:16:47 -07:00
Victor Zverovich
c76957565c
FixedEnum -> StrongEnum and make it a regression test
2019-08-31 08:16:47 -07:00
Rosen Penev
200ee6f108
Fix minor clang-tidy warnings
...
using instead of typedef.
climits instead of limits.h
Added missing cast to size_t.
2019-08-31 07:02:21 -07:00
Egor Seredin
bcd9b9331a
Map not int enum to correct underlying_type ( #1286 )
...
* Map not int enum to correct underlying_type
* Use non-zero constant in TestFixedEnum
2019-08-31 06:25:38 -07:00