From fecb2d6f0d6c97986c72c7b28f6ff52b3af6348c Mon Sep 17 00:00:00 2001 From: Daniela Engert Date: Sun, 25 Nov 2018 09:02:06 +0100 Subject: [PATCH] Eliminate msvc compiler warnings (#931) The sheer presence of 'std::gmtime' or 'std::localtime' gives rise to C4996 warnings in Microsofts compilers. Alas, the 'fallback(internal::null<>)'functions containing these library calls are never ADL-picked in the respective 'handle(internal::null<>)' selectors. Therefore hiding the fallbacks from msvc is perfectly fine. --- include/fmt/time.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/fmt/time.h b/include/fmt/time.h index b075601137e5..e837a8853614 100644 --- a/include/fmt/time.h +++ b/include/fmt/time.h @@ -46,12 +46,14 @@ inline std::tm localtime(std::time_t time) { bool fallback(int res) { return res == 0; } +#if !FMT_MSC_VER bool fallback(internal::null<>) { using namespace fmt::internal; std::tm *tm = std::localtime(&time_); if (tm) tm_ = *tm; return tm != FMT_NULL; } +#endif }; dispatcher lt(time); if (lt.run()) @@ -83,11 +85,13 @@ inline std::tm gmtime(std::time_t time) { bool fallback(int res) { return res == 0; } +#if !FMT_MSC_VER bool fallback(internal::null<>) { std::tm *tm = std::gmtime(&time_); if (tm) tm_ = *tm; return tm != FMT_NULL; } +#endif }; dispatcher gt(time); if (gt.run())