10 #ifndef WALLTIME_FUNC_H
11 #define WALLTIME_FUNC_H
17 static inline std::tm ToTimeStruct(std::time_t time_since_epoch)
22 localtime_s(&time, &time_since_epoch);
24 localtime_r(&time_since_epoch, &time);
32 static inline std::tm ToTimeStruct(std::time_t time_since_epoch)
37 gmtime_s(&time, &time_since_epoch);
39 gmtime_r(&time_since_epoch, &time);
58 static inline size_t Format(
char *buffer,
const char *last,
const char *format) NOACCESS(2) WARN_TIME_FORMAT(3)
60 std::tm time_struct = T::ToTimeStruct(time(
nullptr));
65 #pragma GCC diagnostic push
66 #pragma GCC diagnostic ignored "-Wformat-nonliteral"
68 return strftime(buffer, last - buffer, format, &time_struct);
70 #pragma GCC diagnostic pop