Commit Graph

3458 Commits

Author SHA1 Message Date
denchat
b6db4b8a26
Turns out that I misunderstood MSVC 2019-05-09 18:48:28 +07:00
denchat
03d76000fd
Not sure about MSVC, test travis again 2019-05-09 18:39:24 +07:00
denchat
ff44d1a358
Update CMakeLists.txt 2019-05-09 18:22:49 +07:00
denchat
ade161dbdc
Update CMakeLists.txt 2019-05-09 18:12:20 +07:00
denchat
473ccd01d7
Update CMakeLists.txt 2019-05-09 18:06:10 +07:00
denchat
8d8f7b1fae
gmock PUBLIC 2019-05-09 18:04:55 +07:00
denchat
032ac28c1d
Bring _VARIADIC_MAX=10 out of MSVC AND WIN32 context 2019-05-09 17:59:21 +07:00
denchat
39a140ac9d
Because TravisCI evaluates MSVC true in linux and apple
Workaround by replacing

if (MSVC)
with
if (MSVC AND WIN32)
2019-05-09 17:38:00 +07:00
denchat
133af4a9c2
Because TravisCI evaluates MSVC true in linux and apple
So workaround with replacing
If (MSVC)
with
if (MSVC AND WIN32)
2019-05-09 17:36:26 +07:00
denchat
28b559ec56
Try workaround with WIN32 2019-05-09 17:19:31 +07:00
denchat
bdc49297e1
Try workaround with WIN32
somehow TravisCI evaluates MSVC true
2019-05-09 17:17:15 +07:00
denchat
6593a07fae
Fix AppleClang match 2019-05-09 16:46:09 +07:00
denchat
9d0de74f0d
Fix AppleClang match 2019-05-09 16:45:02 +07:00
denchat
c0790969a1
Fix excessing parenthesis 2019-05-09 16:27:17 +07:00
denchat
e7e48c3379
Fix excessing parenthesis 2019-05-09 16:26:33 +07:00
denchat
b17216a452
Receive FMT_MSVC_EH from user 2019-05-09 15:56:10 +07:00
denchat
eb420be65d
Receive FMT_MSVC_EH from user 2019-05-09 15:55:21 +07:00
denchat
073571a88a
missing that semicolon! 2019-05-09 13:48:40 +07:00
denchat
d7b83ff48e
Narrowing /EHsc to clang-target-msvc only 2019-05-09 12:59:52 +07:00
denchat
d75c98b515
Narrowing scope to clang-target-msvc for mirroring cl default /EHsc 2019-05-09 12:56:02 +07:00
denchat
c8cbf57e06
Use 'using' to provide char8_t type if neccessary as Victor's suggestion 2019-05-09 12:22:32 +07:00
denchat
63d6445592
Turn on exceptions automatically in MSVC
User must manually turn on exceptions otherwise error occurs when compiling `format.cc` as below

fmt-master\include\fmt/format-inl.h(891,3): error: cannot use 'try' with exceptions disabled
  FMT_TRY {
  ^
2019-05-09 02:14:14 +07:00
denchat
abb3050e39
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.
2019-05-09 02:06:05 +07:00
denchat
28588a937e
Suppress -Winconsistent-dllimport when in clang-target-msvc 2019-05-09 01:53:49 +07:00
denchat
c575d56757
Fix conditional char8_t from format.h and fix -Wunused-result of [[no_discard]] begin() when in c++17 2019-05-09 01:49:53 +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
denchat
3fd134be03 Move test_count_digits to format-impl-test and disable gtest warnings (#1147)
* This translation unit includes `gtest.h` in which using something like `strncpy`

Suppress MSVC warnings from `gtest.h` included.

Warning sample:
fmt-master\test\gtest\gtest.h(2873,10): warning: 'strncpy' is deprecated: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [-Wdeprecated-declarations]

* Moving `test_count_digits` to format-impl-test then count_digits<4>(internal::uintptr_t) shall not be exported

* retaining _CRT_SECURE_NO_WARNINGS always defined should be no harms.
2019-05-07 12:09:11 -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
Paul Dreik
b3cc9c0567 Merge remote-tracking branch 'upstream/master' into invalidcolons
# Conflicts:
#	test/chrono-test.cc
2019-04-28 21:35:21 +02:00
Paul Dreik
2e3352fd05 provoke assertion
fmt/include/fmt/core.h:246:
typename std::make_unsigned<_Tp>::type fmt::v5::internal::to_unsigned(Int)
[with Int = long int;
 typename std::make_unsigned<_Tp>::type = long unsigned int]:
Assertion `(value >= 0) && "negative value"' failed.
2019-04-28 21:34:09 +02: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
cb46397dfb Fix typo 2019-04-27 07:13:35 -07:00
Victor Zverovich
134904c886 Re-enabled constexpr tests 2019-04-26 17:07:37 -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
544b927933 Don't detect C compiler 2019-04-17 06:18:53 -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