indentlog: compile fixes for OSX build (clang 11)
This commit is contained in:
parent
f88484a79d
commit
e149d44a93
3 changed files with 33 additions and 22 deletions
|
|
@ -232,7 +232,7 @@ namespace xo {
|
|||
} /*nesting_level*/
|
||||
|
||||
template <typename CharT, typename Traits>
|
||||
basic_scope<CharT, Traits>::state_impl_type *
|
||||
typename basic_scope<CharT, Traits>::state_impl_type *
|
||||
basic_scope<CharT, Traits>::require_indent_thread_local_state()
|
||||
{
|
||||
state_impl_type * local_state = require_thread_local_state();
|
||||
|
|
@ -244,7 +244,7 @@ namespace xo {
|
|||
} /*require_thread_local_stream*/
|
||||
|
||||
template <typename CharT, typename Traits>
|
||||
basic_scope<CharT, Traits>::state_impl_type *
|
||||
typename basic_scope<CharT, Traits>::state_impl_type *
|
||||
basic_scope<CharT, Traits>::require_thread_local_state()
|
||||
{
|
||||
if(!s_threadlocal_state) {
|
||||
|
|
|
|||
|
|
@ -13,10 +13,6 @@
|
|||
|
||||
namespace xo {
|
||||
namespace time {
|
||||
|
||||
using utc_nanos = std::chrono::time_point<std::chrono::system_clock,
|
||||
std::chrono::nanoseconds>;
|
||||
|
||||
using nanos = std::chrono::nanoseconds;
|
||||
using microseconds = std::chrono::microseconds;
|
||||
using milliseconds = std::chrono::milliseconds;
|
||||
|
|
@ -24,6 +20,12 @@ namespace xo {
|
|||
using hours = std::chrono::hours;
|
||||
using days = std::chrono::days;
|
||||
|
||||
using utc_nanos = std::chrono::time_point<std::chrono::system_clock,
|
||||
std::chrono::nanoseconds>;
|
||||
using utc_micros = std::chrono::time_point<std::chrono::system_clock,
|
||||
std::chrono::microseconds>;
|
||||
|
||||
|
||||
struct timeutil {
|
||||
static utc_nanos now() {
|
||||
return utc_nanos(std::chrono::system_clock::now());
|
||||
|
|
@ -168,7 +170,9 @@ namespace xo {
|
|||
|
||||
/* use yyyymmdd.hh:mm:ss.nnnnnn */
|
||||
|
||||
time_t t0_time_t = (std::chrono::system_clock::to_time_t(t0));
|
||||
time_t t0_time_t
|
||||
= (std::chrono::system_clock::to_time_t
|
||||
(std::chrono::time_point_cast<microseconds>(t0)));
|
||||
//time_t t0_time_t = (std::chrono::system_clock::to_time_t(std::chrono::time_point_cast<xo::time::microseconds>(t0)));
|
||||
|
||||
/* convert to std::tm, in UTC coords,
|
||||
|
|
|
|||
|
|
@ -10,75 +10,82 @@ using namespace xo::time;
|
|||
using namespace std::chrono;
|
||||
|
||||
namespace ut {
|
||||
template <typename FromTime>
|
||||
inline utc_micros to_micros(FromTime tm) {
|
||||
return std::chrono::time_point_cast<xo::time::microseconds>(tm);
|
||||
} /*to_micros*/
|
||||
|
||||
TEST_CASE("epoch", "[timeutil]") {
|
||||
//tag_config::tag_color = color_spec_type::none();
|
||||
using xo::time::microseconds;
|
||||
|
||||
|
||||
utc_nanos t0 = timeutil::epoch();
|
||||
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(0));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(0));
|
||||
} /*TEST_CASE(epoch)*/
|
||||
|
||||
TEST_CASE("ymd_hms", "[timeutil]") {
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700101 /*ymd*/, 0 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(0));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(0));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700101 /*ymd*/, 1 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(1));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(1));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700101 /*ymd*/, 100 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(60));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(60));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700101 /*ymd*/, 10000 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(3600));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(3600));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700101 /*ymd*/, 235959 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(86399));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(86399));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700102 /*ymd*/, 235959 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(86400 + 86399));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(86400 + 86399));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700131 /*ymd*/, 235959 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(30 * 86400 + 86399));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(30 * 86400 + 86399));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_hms(19700201 /*ymd*/, 235959 /*hms*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(31 * 86400 + 86399));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(31 * 86400 + 86399));
|
||||
}
|
||||
} /*TEST_CASE(ymd_hms)*/
|
||||
|
||||
TEST_CASE("ymd_midnight", "[timeutil]") {
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_midnight(19700101 /*ymd*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(0));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(0));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_midnight(19700102 /*ymd*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(86400));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(86400));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_midnight(19700131 /*ymd*/);
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(t0) == std::time_t(30 * 86400));
|
||||
REQUIRE(std::chrono::system_clock::to_time_t(to_micros(t0)) == std::time_t(30 * 86400));
|
||||
}
|
||||
|
||||
{
|
||||
utc_nanos t0 = timeutil::ymd_midnight(19700201 /*ymd*/);
|
||||
REQUIRE(system_clock::to_time_t(t0) == std::time_t(31 * 86400));
|
||||
REQUIRE(system_clock::to_time_t(to_micros(t0)) == std::time_t(31 * 86400));
|
||||
}
|
||||
} /*TEST_CASE(ymd_midnight)*/
|
||||
|
||||
|
|
@ -144,10 +151,10 @@ namespace ut {
|
|||
INFO(xtag("tc.utc_ymd_hms_usec_str", tc.utc_ymd_hms_usec_str_));
|
||||
|
||||
utc_nanos const t0 = timeutil::ymd_hms_usec(tc.ymd_, tc.hms_, tc.usec_);
|
||||
REQUIRE(system_clock::to_time_t(t0) == std::time_t(tc.epoch_sec_));
|
||||
REQUIRE(system_clock::to_time_t(to_micros(t0)) == std::time_t(tc.epoch_sec_));
|
||||
|
||||
auto x = timeutil::utc_split_vs_midnight(t0);
|
||||
REQUIRE(system_clock::to_time_t(x.first) == tc.midnight_sec_);
|
||||
REQUIRE(system_clock::to_time_t(to_micros(x.first)) == tc.midnight_sec_);
|
||||
REQUIRE(x.second == seconds(tc.fractional_sec_) + microseconds(tc.fractional_usec_));
|
||||
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue