Commit Graph

647 Commits

Author SHA1 Message Date
Victor Zverovich
5b7bbf8853 Revert "FMT_CHAR -> char_t"
This reverts commit 4c650057a0.
2019-06-01 15:01:04 -07:00
Victor Zverovich
4c650057a0 FMT_CHAR -> char_t 2019-06-01 12:32:24 -07:00
Victor Zverovich
2833c76f22 Move char_t to template param to reduce symbol size 2019-06-01 12:14:27 -07:00
Victor Zverovich
67feef5589 Make enable_if_t more std-like and move to fmt namespace 2019-06-01 10:05:16 -07:00
Victor Zverovich
78daa50ffc Fix handling of chrono durations with minimal signed rep 2019-06-01 09:36:37 -07:00
Christopher Di Bella
c929684e33 inlines count_code_points(basic_string_view<char8_t)
count_code_points(basic_string_view<char8_t>) was defined in
fmt/format-inl.h, and only declared in fmt/format.h, but not defined
in src/format.cc. This commit moves the overload to fmt/format.h and
inlines it.
2019-06-01 07:17:22 -07:00
Victor Zverovich
f57227a148 FMT_ENABLE_IF -> enable_if_t 2019-05-31 20:09:19 -07:00
Victor Zverovich
634f707f2b Simplify char_t and remove msvc2013 from CI 2019-05-31 19:28:37 -07:00
Victor Zverovich
406e632bd1 result_of -> invoke_result_t 2019-05-31 08:54:32 -07:00
Victor Zverovich
49f78a427b Demacrify 2019-05-30 21:30:29 -07:00
Victor Zverovich
637bf3c6d9 Workaround a bug in clang-format 2019-05-30 11:46:31 -07:00
Victor Zverovich
8302c2f33b fmt::internal::declval -> std::declval 2019-05-30 09:46:10 -07:00
Victor Zverovich
d07cc2026b FMT_EXPLICIT -> explicit, FMT_NULL -> nullptr 2019-05-30 07:42:36 -07:00
Victor Zverovich
30bce6c14c Fix a few chrono formatting corner cases (#1178) 2019-05-29 18:02:26 -07:00
Victor Zverovich
e5512c5d57 Use static_assert instead of SFINAE in arg(...) 2019-05-29 13:21:24 -07:00
Victor Zverovich
afc571aedc Document join and relax its compiler requirements 2019-05-29 11:21:05 -07:00
Victor Zverovich
291ba837f2 Remove wrong compile-time checks from printf (#1173) 2019-05-24 07:50:13 -07:00
Victor Zverovich
e3e470bb69 Remove deprecated format_decimal 2019-05-15 10:34:45 -07:00
Victor Zverovich
25b72fc4cd Move <format> to tests not to confuse users 2019-05-15 09:08:42 -07:00
Victor Zverovich
d179ec5f8b Simplify Grisu 2019-05-15 08:40:21 -07:00
denchat
2a9e8b52de Fix advance_to() and begin() using iterator (#1159) 2019-05-14 08:41:11 -07:00
Victor Zverovich
2c77562b13 Fix ambiguous formatter specialization in fmt/ranges.h (#1123) 2019-05-12 13:03:20 -07:00
Victor Zverovich
98b3775297 Add support for exotic string_view iterators (#1156) 2019-05-12 11:07:49 -07:00
Victor Zverovich
b488df6cfe Fix Grisu3 stopping conditions 2019-05-12 08:56:50 -07:00
denchat
f4dfd6e30f Suppress all clang-target-msvc test warning in CMake and other misc fixes (#1151)
* Fix conditional `char8_t` from `format.h` and fix `-Wunused-result` of [[no_discard]] begin() when in c++17

* Suppress `-Winconsistent-dllimport` when in clang-target-msvc

* Suppress warning _CRT_SECURE_NO_WARNINGS in MSVC and -Wdeprecated-declarations

Suppress warning _CRT_SECURE_NO_WARNINGS in MSVC and -Wdeprecated-declarations of POSIX functions in Clang target MSVC.
Those functions are used by gtest.

* Remove FMT_FUNC, mark FMT_API to export
2019-05-11 11:48:27 -07:00
Victor Zverovich
a6e8ed15c4 Disable UDL templates on GCC 9 by default (#1148) 2019-05-11 08:58:39 -07:00
Victor Zverovich
de5da50910 Fix formatting of extreme durations (#1154) 2019-05-11 08:42:02 -07:00
Alex Alabuzhev
77d6036cd5 Fix unexpected trailing decimal point (#1153) 2019-05-11 06:34:47 -07:00
Victor Zverovich
e9bab6d028 Improve handling of large durations 2019-05-08 12:40:33 -07:00
mocabe
118d8bccc2 Fix compilation error under MSVC 19.21 (#1140) 2019-05-08 11:20:55 -07:00
mocabe
6828d549e8 Add FMT_ENABLE_IF_T
for definitions of functions which declared using FMT_ENABLE_IF
2019-05-08 11:20:55 -07:00
Ronny Krüger
ca7c1f89dc Fixed a compile error under MSVC.
The #warning directive is not supported by MSVC.
To still get a message to the user we use #pragma message() under MSVC now.
2019-05-05 14:04:04 -07:00
Victor Zverovich
ca978b3d21 Fix handling of nan durations 2019-05-05 08:53:23 -07:00
Victor Zverovich
c1d430e61a Improve handling of negative durations 2019-05-04 17:52:20 -07:00
Victor Zverovich
38a85502ed Use the same rep type for seconds to prevent overflow 2019-05-04 09:22:09 -07:00
Greg Sjaardema
241414028d Eliminate shadowed variable warnings from gcc-7.2
The gcc-7.2.0 compiler (and others) were giving shadowed variable warnings for this include file.  A simple renaming of a couple local variables eliminates the warnings.
2019-05-04 08:00:31 -07:00
denchat
29c10fbf6e Fix DLL visibility of explicit instantiation "declaration" of internal::basic_data<void> in header format.h and the explicit instantiation "definition" in format.cc (#1134)
* Update format.cc

As the explicit instantiation *declaration* of `internal::basic_data<void>` in format.h, this explicit instantiation *definition* should mirror FMT_API also.

* Mirror visibility of explicit instantiation declaration 

explicit instantiation declaration of internal::basic_data<void> should mirror visibility of FMT_API

* Eliminate `__declspec(dllexport)` designation on extern template internal::basic_data<> when `extern` affected during exporting phase.

* Add `FMT_EXTERN_TEMPLATE_API` for designate DLL export `extern template`

When exporting DLL, do not designate `__declspec(dllexport)` any template that has any explicit class template declaration a.k.a. `extern template`. Instead, designate `__declspec(dllexport)` at single point where we have explicit class template definition a.k.a. normal instantiation without `extern`

Note: this is a c++11 feature.

* Delete whole `FMT_USE_EXTERN_TEMPLATES` block and its condition

1. Remove whole `FMT_USE_EXTERN_TEMPLATES` block
(trailing `FMT_UDL_TEMPLATE` block)
````
#ifndef FMT_USE_EXTERN_TEMPLATES
#  ifndef FMT_HEADER_ONLY
#    define FMT_USE_EXTERN_TEMPLATES                           \
      ((FMT_CLANG_VERSION >= 209 && __cplusplus >= 201103L) || \
       (FMT_GCC_VERSION >= 303 && FMT_HAS_GXX_CXX11))
#  else
#    define FMT_USE_EXTERN_TEMPLATES 0
#  endif
#endif
````

2. Delete `FMT_USE_EXTERN_TEMPLATES` condition, only condition, that trailing basic_data class template definition.
````
#if FMT_USE_EXTERN_TEMPLATES
extern template struct basic_data<void>;
#endif
````

3. Replace `FMT_API` with new `FMT_EXTERN_TEMPLATE_API` added in `core.h` for sake of extern template of `basic_data<void>`

* Add `#define FMT_EXTERN extern` only when not `FMT_HEADER_ONLY`

* Replace `extern` on basic_data<void> with the `FMT_EXTERN` condition in core.h

* replace misspelled if !define() with ifndef
2019-05-02 07:49:01 -07:00
Victor Zverovich
4a4d72f917 Fix handling of invalid string in chrono formatting 2019-05-01 10:06:42 -07:00
Victor Zverovich
4c721e3a2f Fix chrono formatting with invalid argument id (#1132) 2019-04-28 07:08:41 -07:00
Victor Zverovich
8d8ea21c69 Partially implement Grisu3 2019-04-27 12:17:21 -07:00
Victor Zverovich
40a7975640 Remove trailing zeros 2019-04-27 07:42:27 -07:00
Victor Zverovich
bd516e3429 Convert negative precision to zero in printf (#1127)
and remove redundant check in grisu2_prettify.
2019-04-21 07:44:04 -07:00
Victor Zverovich
5efb24dd2b Add specialization test 2019-04-19 17:15:46 -07:00
Victor Zverovich
946498cfbc Fix handling of zero precision 2019-04-19 15:10:12 -07:00
HE, Tao
6b20863918 fmt::ptr: support unique_ptr and shared_ptr. 2019-04-18 10:12:11 -07:00
Victor Zverovich
d306585a3f Don't inject internal names into std (#1120) 2019-04-17 13:25:31 -07:00
Victor Zverovich
dc94010fa5 Remove char_traits (#1117) 2019-04-16 17:08:24 -07:00
Victor Zverovich
397e8dd9d5 clang-format 2019-04-15 11:39:19 -07:00
ToolsDevler
2b415b7af7 Restructure printf_arg_formatter to make it customizable 2019-04-15 11:10:31 -07:00
Victor Zverovich
5d755d0a4e Fix handling of volatile char (#1115) 2019-04-14 12:34:56 -07:00