diff --git a/date.h b/date.h index 6761b6d..80766bb 100644 --- a/date.h +++ b/date.h @@ -101,9 +101,6 @@ template using local_seconds = local_time; using local_days = local_time; -// deprecated: -using day_point = sys_days; - // types struct last_spec @@ -1326,19 +1323,14 @@ year::is_leap() const NOEXCEPT } CONSTCD11 inline year::operator int() const NOEXCEPT {return y_;} -CONSTCD11 inline bool year::ok() const NOEXCEPT {return min() <= *this && *this <= max();} +CONSTCD11 inline bool year::ok() const NOEXCEPT {return true;} CONSTCD11 inline year year::min() NOEXCEPT { - using namespace std::chrono; - static_assert(sizeof(seconds)*CHAR_BIT >= 41, "seconds may overflow"); - static_assert(sizeof(hours)*CHAR_BIT >= 30, "hours may overflow"); - return sizeof(minutes)*CHAR_BIT < 34 ? - year{1970} + duration_cast(minutes::min()) : - year{std::numeric_limits::min()}; + return year{std::numeric_limits::min()}; } CONSTCD11 @@ -1346,12 +1338,7 @@ inline year year::max() NOEXCEPT { - using namespace std::chrono; - static_assert(sizeof(seconds)*CHAR_BIT >= 41, "seconds may overflow"); - static_assert(sizeof(hours)*CHAR_BIT >= 30, "hours may overflow"); - return sizeof(minutes)*CHAR_BIT < 34 ? - year{1969} + duration_cast(minutes::max()) : - year{std::numeric_limits::max()}; + return year{std::numeric_limits::max()}; } CONSTCD11 @@ -2709,7 +2696,7 @@ inline days year_month_weekday::to_days() const NOEXCEPT { - auto d = day_point(y_/m_/1); + auto d = sys_days(y_/m_/1); return (d + (wdi_.weekday() - date::weekday(d) + days{(wdi_.index()-1)*7}) ).time_since_epoch(); } diff --git a/iso_week.h b/iso_week.h index 9103659..f6afceb 100644 --- a/iso_week.h +++ b/iso_week.h @@ -41,9 +41,6 @@ using years = date::years; using sys_days = date::sys_days; using local_days = date::local_days; -// deprecated: -using day_point = sys_days; - // types struct last_week diff --git a/test/date_test/durations.pass.cpp b/test/date_test/durations.pass.cpp index 70a152b..2c35e98 100644 --- a/test/date_test/durations.pass.cpp +++ b/test/date_test/durations.pass.cpp @@ -36,7 +36,7 @@ // // time_point // -// using day_point = std::chrono::time_point; +// using sys_days = std::chrono::time_point; #include "date.h" @@ -54,7 +54,7 @@ static_assert(date::years{400} == date::days{146097}, ""); static_assert(date::days{365} < date::years{1} && date::years{1} < date::days{366}, ""); static_assert(date::weeks{52} < date::years{1} && date::years{1} < date::weeks{53}, ""); -static_assert(std::is_same{}, ""); +static_assert(std::is_same{}, ""); int main() diff --git a/test/date_test/sizeof.pass.cpp b/test/date_test/sizeof.pass.cpp index 104507c..3df45a1 100644 --- a/test/date_test/sizeof.pass.cpp +++ b/test/date_test/sizeof.pass.cpp @@ -34,7 +34,7 @@ main() static_assert(sizeof(months) == 4, ""); static_assert(sizeof(years) == 4, ""); - static_assert(sizeof(day_point) == 4, ""); + static_assert(sizeof(sys_days) == 4, ""); static_assert(sizeof(last_spec) == 1, ""); diff --git a/test/date_test/weekday.pass.cpp b/test/date_test/weekday.pass.cpp index bae513b..ed5da17 100644 --- a/test/date_test/weekday.pass.cpp +++ b/test/date_test/weekday.pass.cpp @@ -25,7 +25,7 @@ // unsigned char wd_; // public: // explicit constexpr weekday(unsigned wd) noexcept; -// constexpr weekday(const day_point& dp) noexcept; +// constexpr weekday(const sys_days& dp) noexcept; // // weekday& operator++() noexcept; // weekday operator++(int) noexcept; @@ -76,10 +76,10 @@ static_assert( std::is_trivially_move_constructible{}, ""); static_assert( std::is_trivially_move_assignable{}, ""); static_assert( std::is_nothrow_constructible{}, ""); -static_assert( std::is_nothrow_constructible{}, ""); +static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_nothrow_constructible{}, ""); static_assert(!std::is_convertible{}, ""); -static_assert( std::is_convertible{}, ""); +static_assert( std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(static_cast(date::weekday{1u}) == 1, ""); diff --git a/test/date_test/year.pass.cpp b/test/date_test/year.pass.cpp index dfb051b..1b28914 100644 --- a/test/date_test/year.pass.cpp +++ b/test/date_test/year.pass.cpp @@ -108,29 +108,29 @@ main() #if __cplusplus >= 201402 using int64_t = std::int64_t; - static_assert(day_point(year::min()/jan/1) - day_point(1970_y/jan/1) + static_assert(sys_days(year::min()/jan/1) - sys_days(1970_y/jan/1) >= as(days::min()), ""); - static_assert(day_point(year::min()/jan/1) - day_point(1970_y/jan/1) + static_assert(sys_days(year::min()/jan/1) - sys_days(1970_y/jan/1) >= as(hours::min()), ""); - static_assert(day_point(year::min()/jan/1) - day_point(1970_y/jan/1) + static_assert(sys_days(year::min()/jan/1) - sys_days(1970_y/jan/1) >= as(minutes::min()), ""); - static_assert(day_point(year::min()/jan/1) - day_point(1970_y/jan/1) + static_assert(sys_days(year::min()/jan/1) - sys_days(1970_y/jan/1) >= as(seconds::min()), ""); - static_assert(day_point(year::min()/jan/1) - day_point(1970_y/jan/1) + static_assert(sys_days(year::min()/jan/1) - sys_days(1970_y/jan/1) >= as(milliseconds::min()), ""); - static_assert(day_point(year::min()/jan/1) - day_point(1970_y/jan/1) + static_assert(sys_days(year::min()/jan/1) - sys_days(1970_y/jan/1) >= as(microseconds::min()), ""); - static_assert(day_point(year::max()/dec/31) - day_point(1970_y/jan/1) + static_assert(sys_days(year::max()/dec/31) - sys_days(1970_y/jan/1) <= as(microseconds::max()), ""); - static_assert(day_point(year::max()/dec/31) - day_point(1970_y/jan/1) + static_assert(sys_days(year::max()/dec/31) - sys_days(1970_y/jan/1) <= as(milliseconds::max()), ""); - static_assert(day_point(year::max()/dec/31) - day_point(1970_y/jan/1) + static_assert(sys_days(year::max()/dec/31) - sys_days(1970_y/jan/1) <= as(seconds::max()), ""); - static_assert(day_point(year::max()/dec/31) - day_point(1970_y/jan/1) + static_assert(sys_days(year::max()/dec/31) - sys_days(1970_y/jan/1) <= as(minutes::max()), ""); - static_assert(day_point(year::max()/dec/31) - day_point(1970_y/jan/1) + static_assert(sys_days(year::max()/dec/31) - sys_days(1970_y/jan/1) <= as(hours::max()), ""); - static_assert(day_point(year::max()/dec/31) - day_point(1970_y/jan/1) + static_assert(sys_days(year::max()/dec/31) - sys_days(1970_y/jan/1) <= as(days::max()), ""); #endif diff --git a/test/date_test/year_month_day.pass.cpp b/test/date_test/year_month_day.pass.cpp index ef93ac6..792253e 100644 --- a/test/date_test/year_month_day.pass.cpp +++ b/test/date_test/year_month_day.pass.cpp @@ -26,7 +26,7 @@ // constexpr year_month_day(const date::year& y, const date::month& m, // const date::day& d) noexcept; // constexpr year_month_day(const year_month_day_last& ymdl) noexcept; -// constexpr year_month_day(const day_point& dp) noexcept; +// constexpr year_month_day(const sys_days& dp) noexcept; // // year_month_day& operator+=(const months& m) noexcept; // year_month_day& operator-=(const months& m) noexcept; @@ -37,7 +37,7 @@ // constexpr date::month month() const noexcept; // constexpr date::day day() const noexcept; // -// constexpr operator day_point() const noexcept; +// constexpr operator sys_days() const noexcept; // constexpr bool ok() const noexcept; // }; @@ -76,10 +76,10 @@ static_assert(std::is_nothrow_constructible{}, ""); static_assert(std::is_convertible{}, ""); -static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_convertible{}, ""); -static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_convertible{}, ""); +static_assert(std::is_nothrow_constructible{}, ""); +static_assert(std::is_convertible{}, ""); +static_assert(std::is_nothrow_constructible{}, ""); +static_assert(std::is_convertible{}, ""); void test_arithmetic() @@ -131,7 +131,7 @@ test_day_point_conversion() using namespace date; year y = year{-1000}; year end = 3000_y; - day_point prev_dp = day_point(year_month_day{y, jan, 1_d}) - days{1}; + sys_days prev_dp = sys_days(year_month_day{y, jan, 1_d}) - days{1}; weekday prev_wd = weekday{prev_dp}; for (; y <= end; ++y) { @@ -143,7 +143,7 @@ test_day_point_conversion() { year_month_day ymd = {y, m, d}; assert(ymd.ok()); - day_point dp = ymd; + sys_days dp = ymd; assert(dp == prev_dp + days{1}); year_month_day ymd2 = dp; assert(ymd2 == ymd); @@ -171,7 +171,7 @@ main() static_assert(ymd1.day() == 9_d, ""); #if __cplusplus >= 201402 - constexpr day_point dp = ymd1; + constexpr sys_days dp = ymd1; static_assert(dp.time_since_epoch() == days{16656}, ""); constexpr year_month_day ymd2 = dp; static_assert(ymd1 == ymd2, ""); @@ -186,7 +186,7 @@ main() static_assert(ymd3.day() == 31_d, ""); #if __cplusplus >= 201402 - constexpr day_point dp3 = ymd3; + constexpr sys_days dp3 = ymd3; static_assert(dp3.time_since_epoch() == days{-1}, ""); constexpr year_month_day ymd4 = dp3; static_assert(ymd3 == ymd4, ""); @@ -211,9 +211,9 @@ main() static_assert( (2100_y/feb/28).ok(), ""); static_assert(!(2100_y/feb/29).ok(), ""); - static_assert(day_point(2100_y/feb/28) + days{1} == day_point(2100_y/mar/1), ""); - static_assert(day_point(2000_y/mar/1) - day_point(2000_y/feb/28) == days{2}, ""); - static_assert(day_point(2100_y/mar/1) - day_point(2100_y/feb/28) == days{1}, ""); + static_assert(sys_days(2100_y/feb/28) + days{1} == sys_days(2100_y/mar/1), ""); + static_assert(sys_days(2000_y/mar/1) - sys_days(2000_y/feb/28) == days{2}, ""); + static_assert(sys_days(2100_y/mar/1) - sys_days(2100_y/feb/28) == days{1}, ""); static_assert(jan/31/2015 == jan/last/2015, ""); static_assert(feb/28/2015 == feb/last/2015, ""); diff --git a/test/date_test/year_month_day_last.pass.cpp b/test/date_test/year_month_day_last.pass.cpp index fdd1df0..6ac800a 100644 --- a/test/date_test/year_month_day_last.pass.cpp +++ b/test/date_test/year_month_day_last.pass.cpp @@ -36,7 +36,7 @@ // constexpr date::month_day_last month_day_last() const noexcept; // constexpr date::day day() const noexcept; // -// constexpr operator day_point() const noexcept; +// constexpr operator sys_days() const noexcept; // constexpr bool ok() const noexcept; // }; @@ -94,9 +94,9 @@ static_assert( std::is_trivially_move_assignable{}, " static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_convertible{}, ""); +static_assert(std::is_convertible{}, ""); void test_arithmetic() @@ -154,7 +154,7 @@ main() static_assert(ymdl1.month_day_last() == month_day_last{aug}, ""); #if __cplusplus >= 201402 static_assert(ymdl1.day() == 31_d, ""); - constexpr day_point dp = ymdl1; + constexpr sys_days dp = ymdl1; constexpr year_month_day ymd = dp; static_assert(ymd == 2015_y/aug/31, ""); #endif diff --git a/test/date_test/year_month_weekday.pass.cpp b/test/date_test/year_month_weekday.pass.cpp index b3a00de..70fefa0 100644 --- a/test/date_test/year_month_weekday.pass.cpp +++ b/test/date_test/year_month_weekday.pass.cpp @@ -25,7 +25,7 @@ // public: // constexpr year_month_weekday(const date::year& y, const date::month& m, // const date::weekday_indexed& wdi) noexcept; -// constexpr year_month_weekday(const day_point& dp) noexcept; +// constexpr year_month_weekday(const sys_days& dp) noexcept; // // year_month_weekday& operator+=(const months& m) noexcept; // year_month_weekday& operator-=(const months& m) noexcept; @@ -38,11 +38,11 @@ // constexpr unsigned index() const noexcept; // constexpr date::weekday_indexed weekday_indexed() const noexcept; // -// constexpr operator day_point() const noexcept; +// constexpr operator sys_days() const noexcept; // constexpr bool ok() const noexcept; // // private: -// static constexpr year_month_weekday from_day_point(const day_point& dp) noexcept; +// static constexpr year_month_weekday from_day_point(const sys_days& dp) noexcept; // }; // constexpr @@ -93,11 +93,11 @@ static_assert(std::is_nothrow_constructible{}, ""); static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_convertible{}, ""); -static_assert(std::is_nothrow_constructible{}, ""); +static_assert(std::is_convertible{}, ""); +static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_convertible{}, ""); +static_assert(std::is_convertible{}, ""); void test_arithmetic() @@ -158,7 +158,7 @@ main() static_assert(ymdl1.index() == 2u, ""); static_assert(ymdl1.weekday_indexed() == fri[2], ""); #if __cplusplus >= 201402 - constexpr day_point dp = ymdl1; + constexpr sys_days dp = ymdl1; constexpr year_month_day ymd = dp; static_assert(ymd == 2015_y/aug/14, ""); #endif diff --git a/test/date_test/year_month_weekday_last.pass.cpp b/test/date_test/year_month_weekday_last.pass.cpp index 08a0e44..843df17 100644 --- a/test/date_test/year_month_weekday_last.pass.cpp +++ b/test/date_test/year_month_weekday_last.pass.cpp @@ -36,7 +36,7 @@ // constexpr date::weekday weekday() const noexcept; // constexpr date::weekday_last weekday_last() const noexcept; // -// constexpr operator day_point() const noexcept; +// constexpr operator sys_days() const noexcept; // constexpr bool ok() const noexcept; // }; @@ -90,9 +90,9 @@ static_assert( std::is_trivially_move_assignable{ static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_nothrow_constructible{}, ""); -static_assert(std::is_convertible{}, ""); +static_assert(std::is_convertible{}, ""); void test_arithmetic() @@ -150,7 +150,7 @@ main() static_assert(ymdl1.weekday() == fri, ""); static_assert(ymdl1.weekday_last() == fri[last], ""); #if __cplusplus >= 201402 - constexpr day_point dp = ymdl1; + constexpr sys_days dp = ymdl1; constexpr year_month_day ymd = dp; static_assert(ymd == 2015_y/aug/28, ""); #endif diff --git a/test/iso_week/weekday.pass.cpp b/test/iso_week/weekday.pass.cpp index 9c84c9b..702cdc4 100644 --- a/test/iso_week/weekday.pass.cpp +++ b/test/iso_week/weekday.pass.cpp @@ -26,7 +26,7 @@ // public: // explicit constexpr weekday(unsigned wd) noexcept; // constexpr weekday(date::weekday wd) noexcept; -// constexpr weekday(const day_point& dp) noexcept; +// constexpr weekday(const sys_days& dp) noexcept; // // weekday& operator++() noexcept; // weekday operator++(int) noexcept; @@ -85,12 +85,12 @@ static_assert(std::is_standard_layout{}, ""); static_assert(std::is_literal_type{}, ""); static_assert( std::is_nothrow_constructible{}, ""); -static_assert( std::is_nothrow_constructible{}, ""); +static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_nothrow_constructible{}, ""); static_assert(!std::is_convertible{}, ""); -static_assert( std::is_convertible{}, ""); +static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); diff --git a/test/iso_week/year_lastweek_weekday.pass.cpp b/test/iso_week/year_lastweek_weekday.pass.cpp index 59a43aa..e2164a4 100644 --- a/test/iso_week/year_lastweek_weekday.pass.cpp +++ b/test/iso_week/year_lastweek_weekday.pass.cpp @@ -33,7 +33,7 @@ // constexpr iso_week::weeknum weeknum() const noexcept; // constexpr iso_week::weekday weekday() const noexcept; // -// constexpr operator day_point() const noexcept; +// constexpr operator sys_days() const noexcept; // constexpr bool ok() const noexcept; // }; // @@ -69,10 +69,10 @@ static_assert(std::is_literal_type{}, ""); static_assert( std::is_nothrow_constructible{}, ""); -static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_convertible{}, ""); + iso_week::sys_days>{}, ""); int main() @@ -100,8 +100,8 @@ main() assert(x3.weeknum() == 53_w); assert(x3.weekday() == tue); - constexpr day_point dp = 2015_y/last/wed; - static_assert(dp == day_point{days{16799}}, ""); + constexpr sys_days dp = 2015_y/last/wed; + static_assert(dp == sys_days{days{16799}}, ""); static_assert(x0.ok(), ""); assert(x3.ok()); diff --git a/test/iso_week/year_weeknum_weekday.pass.cpp b/test/iso_week/year_weeknum_weekday.pass.cpp index 4b4a726..02e6420 100644 --- a/test/iso_week/year_weeknum_weekday.pass.cpp +++ b/test/iso_week/year_weeknum_weekday.pass.cpp @@ -28,7 +28,7 @@ // constexpr year_weeknum_weekday(const iso_week::year& y, const iso_week::weeknum& wn, // const iso_week::weekday& wd) noexcept; // constexpr year_weeknum_weekday(const year_lastweek_weekday& ylwwd) noexcept; -// constexpr year_weeknum_weekday(const day_point& dp) noexcept; +// constexpr year_weeknum_weekday(const sys_days& dp) noexcept; // // year_weeknum_weekday& operator+=(const years& y) noexcept; // year_weeknum_weekday& operator-=(const years& y) noexcept; @@ -37,7 +37,7 @@ // constexpr iso_week::weeknum weeknum() const noexcept; // constexpr iso_week::weekday weekday() const noexcept; // -// constexpr operator day_point() const noexcept; +// constexpr operator sys_days() const noexcept; // constexpr bool ok() const noexcept; // }; // @@ -79,13 +79,13 @@ static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_nothrow_constructible{}, ""); -static_assert( std::is_convertible{}, ""); +static_assert( std::is_convertible{}, ""); -static_assert( std::is_nothrow_constructible{}, ""); static_assert( std::is_convertible{}, ""); + iso_week::sys_days>{}, ""); int main() @@ -102,7 +102,7 @@ main() static_assert(x1.weeknum() == 53_w, ""); static_assert(x1.weekday() == tue, ""); - constexpr year_weeknum_weekday x2 = day_point{days{16792}}; + constexpr year_weeknum_weekday x2 = sys_days{days{16792}}; static_assert(x2.year() == 2015_y, ""); static_assert(x2.weeknum() == 52_w, ""); static_assert(x2.weekday() == wed, ""); @@ -118,8 +118,8 @@ main() assert(x3.weeknum() == 52_w); assert(x3.weekday() == wed); - constexpr day_point dp = 2015_y/52_w/wed; - static_assert(dp == day_point{days{16792}}, ""); + constexpr sys_days dp = 2015_y/52_w/wed; + static_assert(dp == sys_days{days{16792}}, ""); static_assert(x0.ok(), ""); static_assert(x1.ok(), ""); diff --git a/tz.h b/tz.h index 406d622..0ebc4a7 100644 --- a/tz.h +++ b/tz.h @@ -223,36 +223,6 @@ operator<<(std::ostream& os, const local_info& r); using Info = sys_info; class time_zone; -// deprecated: -using Zone = time_zone; - -namespace detail -{ - -inline -days -sum() -{ - return days{0}; -} - -template -inline -Duration -sum(Duration d) -{ - return d; -} - -template -inline -std::common_type_t -sum(D1 d1, D2 d2, Durations ...durations) -{ - return d1 + d2 + sum(durations...); -} - -} // detail template class zoned_time