Skip to content

Commit

Permalink
Eliminate msvc compiler warnings (#931)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
DanielaE authored and vitaut committed Nov 25, 2018
1 parent 64690d3 commit fecb2d6
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions include/fmt/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down Expand Up @@ -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())
Expand Down

0 comments on commit fecb2d6

Please sign in to comment.