mirror of
https://github.com/HowardHinnant/date.git
synced 2025-08-03 20:54:27 +02:00
Work around {} bug for older compilers
* iso_week.h
This commit is contained in:
16
iso_week.h
16
iso_week.h
@@ -1015,8 +1015,8 @@ weeknum
|
|||||||
year_lastweek::weeknum() const NOEXCEPT
|
year_lastweek::weeknum() const NOEXCEPT
|
||||||
{
|
{
|
||||||
const auto y = date::year{static_cast<int>(y_)};
|
const auto y = date::year{static_cast<int>(y_)};
|
||||||
const auto s0 = sys_days{(y-years{1})/12/date::thu[date::last]};
|
const auto s0 = sys_days((y-years{1})/12/date::thu[date::last]);
|
||||||
const auto s1 = sys_days{y/12/date::thu[date::last]};
|
const auto s1 = sys_days(y/12/date::thu[date::last]);
|
||||||
return iso_week::weeknum(date::trunc<weeks>(s1-s0).count());
|
return iso_week::weeknum(date::trunc<weeks>(s1-s0).count());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1313,7 +1313,7 @@ CONSTCD14
|
|||||||
inline
|
inline
|
||||||
year_lastweek_weekday::operator sys_days() const NOEXCEPT
|
year_lastweek_weekday::operator sys_days() const NOEXCEPT
|
||||||
{
|
{
|
||||||
return sys_days{date::year{static_cast<int>(y_)}/date::dec/date::thu[date::last]}
|
return sys_days(date::year{static_cast<int>(y_)}/date::dec/date::thu[date::last])
|
||||||
+ (mon - thu) - (mon - wd_);
|
+ (mon - thu) - (mon - wd_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1321,7 +1321,7 @@ CONSTCD14
|
|||||||
inline
|
inline
|
||||||
year_lastweek_weekday::operator local_days() const NOEXCEPT
|
year_lastweek_weekday::operator local_days() const NOEXCEPT
|
||||||
{
|
{
|
||||||
return local_days{date::year{static_cast<int>(y_)}/date::dec/date::thu[date::last]}
|
return local_days(date::year{static_cast<int>(y_)}/date::dec/date::thu[date::last])
|
||||||
+ (mon - thu) - (mon - wd_);
|
+ (mon - thu) - (mon - wd_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1471,7 +1471,7 @@ CONSTCD14
|
|||||||
inline
|
inline
|
||||||
year_weeknum_weekday::operator sys_days() const NOEXCEPT
|
year_weeknum_weekday::operator sys_days() const NOEXCEPT
|
||||||
{
|
{
|
||||||
return sys_days{date::year{static_cast<int>(y_)-1}/date::dec/date::thu[date::last]}
|
return sys_days(date::year{static_cast<int>(y_)-1}/date::dec/date::thu[date::last])
|
||||||
+ (date::mon - date::thu) + weeks{static_cast<unsigned>(wn_)-1} + (wd_ - mon);
|
+ (date::mon - date::thu) + weeks{static_cast<unsigned>(wn_)-1} + (wd_ - mon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1479,7 +1479,7 @@ CONSTCD14
|
|||||||
inline
|
inline
|
||||||
year_weeknum_weekday::operator local_days() const NOEXCEPT
|
year_weeknum_weekday::operator local_days() const NOEXCEPT
|
||||||
{
|
{
|
||||||
return local_days{date::year{static_cast<int>(y_)-1}/date::dec/date::thu[date::last]}
|
return local_days(date::year{static_cast<int>(y_)-1}/date::dec/date::thu[date::last])
|
||||||
+ (date::mon - date::thu) + weeks{static_cast<unsigned>(wn_)-1} + (wd_ - mon);
|
+ (date::mon - date::thu) + weeks{static_cast<unsigned>(wn_)-1} + (wd_ - mon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1499,11 +1499,11 @@ year_weeknum_weekday::from_days(days d) NOEXCEPT
|
|||||||
const auto dp = sys_days{d};
|
const auto dp = sys_days{d};
|
||||||
const auto wd = iso_week::weekday{dp};
|
const auto wd = iso_week::weekday{dp};
|
||||||
auto y = date::year_month_day{dp + days{3}}.year();
|
auto y = date::year_month_day{dp + days{3}}.year();
|
||||||
auto start = sys_days{(y - date::years{1})/date::dec/date::thu[date::last]} + (mon-thu);
|
auto start = sys_days((y - date::years{1})/date::dec/date::thu[date::last]) + (mon-thu);
|
||||||
if (dp < start)
|
if (dp < start)
|
||||||
{
|
{
|
||||||
--y;
|
--y;
|
||||||
start = sys_days{(y - date::years{1})/date::dec/date::thu[date::last]} + (mon-thu);
|
start = sys_days((y - date::years{1})/date::dec/date::thu[date::last]) + (mon-thu);
|
||||||
}
|
}
|
||||||
const auto wn = iso_week::weeknum(date::trunc<weeks>(dp - start).count() + 1);
|
const auto wn = iso_week::weeknum(date::trunc<weeks>(dp - start).count() + 1);
|
||||||
return {iso_week::year(static_cast<int>(y)), wn, wd};
|
return {iso_week::year(static_cast<int>(y)), wn, wd};
|
||||||
|
Reference in New Issue
Block a user