std::chrono::operator/(calendar)
| ヘッダー <chrono> で定義 |
||
year_month |
||
| constexpr auto operator/( const std::chrono::year& y, const std::chrono::month& m ) noexcept |
(1) | (C++20以降) |
| constexpr auto operator/( const std::chrono::year& y, int m ) noexcept -> std::chrono::year_month; |
(2) | (C++20以降) |
month_day |
||
| constexpr auto operator/( const std::chrono::month& m, const std::chrono::day& d ) noexcept |
(3) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month& m, int d ) noexcept -> std::chrono::month_day; |
(4) | (C++20以降) |
| constexpr auto operator/( int m, const std::chrono::day& d ) noexcept -> std::chrono::month_day; |
(5) | (C++20以降) |
| constexpr auto operator/( const std::chrono::day& d, const std::chrono::month& m ) noexcept |
(6) | (C++20以降) |
| constexpr auto operator/( const std::chrono::day& d, int m ) noexcept -> std::chrono::month_day; |
(7) | (C++20以降) |
month_day_last |
||
| constexpr auto operator/( const std::chrono::month& m, std::chrono::last_spec ) noexcept |
(8) | (C++20以降) |
| constexpr auto operator/( int m, std::chrono::last_spec ) noexcept -> std::chrono::month_day_last; |
(9) | (C++20以降) |
| constexpr auto operator/( std::chrono::last_spec, const std::chrono::month& m ) noexcept |
(10) | (C++20以降) |
| constexpr auto operator/( std::chrono::last_spec, int m ) noexcept -> std::chrono::month_day_last; |
(11) | (C++20以降) |
month_weekday |
||
| constexpr auto operator/( const std::chrono::month& m, const std::chrono::weekday_indexed& wdi ) noexcept |
(12) | (C++20以降) |
| constexpr auto operator/( int m, const std::chrono::weekday_indexed& wdi ) noexcept -> std::chrono::month_weekday; |
(13) | (C++20以降) |
| constexpr auto operator/( const std::chrono::weekday_indexed& wdi, const std::chrono::month& m ) noexcept |
(14) | (C++20以降) |
| constexpr auto operator/( const std::chrono::weekday_indexed& wdi, int m ) noexcept -> std::chrono::month_weekday; |
(15) | (C++20以降) |
month_weekday_last |
||
| constexpr auto operator/( const std::chrono::month& m, const std::chrono::weekday_last& wdl ) noexcept |
(16) | (C++20以降) |
| constexpr auto operator/( int m, const std::chrono::weekday_last& wdl ) noexcept -> std::chrono::month_weekday_last; |
(17) | (C++20以降) |
| constexpr auto operator/( const std::chrono::weekday_last& wdl, const std::chrono::month& m ) noexcept |
(18) | (C++20以降) |
| constexpr auto operator/( const std::chrono::weekday_last& wdl, int m ) noexcept -> std::chrono::month_weekday_last; |
(19) | (C++20以降) |
year_month_day |
||
| constexpr auto operator/( const std::chrono::year_month& ym, const std::chrono::day& d ) noexcept |
(20) | (C++20以降) |
| constexpr auto operator/( const std::chrono::year_month& ym, int d ) noexcept -> std::chrono::year_month_day; |
(21) | (C++20以降) |
| constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_day& md ) noexcept |
(22) | (C++20以降) |
| constexpr auto operator/( int y, const std::chrono::month_day& md ) noexcept -> std::chrono::year_month_day; |
(23) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_day& md, const std::chrono::year& y ) noexcept |
(24) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_day& md, int y ) noexcept -> std::chrono::year_month_day; |
(25) | (C++20以降) |
year_month_day_last |
||
| constexpr auto operator/( const std::chrono::year_month& ym, std::chrono::last_spec ) noexcept |
(26) | (C++20以降) |
| constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_day_last& mdl ) noexcept |
(27) | (C++20以降) |
| constexpr auto operator/( int y, const std::chrono::month_day_last& mdl ) noexcept -> std::chrono::year_month_day_last; |
(28) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_day_last& mdl, const std::chrono::year& y ) noexcept |
(29) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_day_last& mdl, int y ) noexcept -> std::chrono::year_month_day_last; |
(30) | (C++20以降) |
year_month_weekday |
||
| constexpr auto operator/( const std::chrono::year_month& ym, const std::chrono::weekday_indexed& wdi ) noexcept |
(31) | (C++20以降) |
| constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_weekday& mwd ) noexcept |
(32) | (C++20以降) |
| constexpr auto operator/( int y, const std::chrono::month_weekday& mwd ) noexcept -> std::chrono::year_month_weekday; |
(33) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_weekday& mwd, const std::chrono::year& y ) noexcept |
(34) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_weekday& mwd, int y ) noexcept -> std::chrono::year_month_weekday; |
(35) | (C++20以降) |
year_month_weekday_last |
||
| constexpr auto operator/( const std::chrono::year_month& ym, const std::chrono::weekday_last& wdl ) noexcept |
(36) | (C++20以降) |
| constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_weekday_last& mwdl ) noexcept |
(37) | (C++20以降) |
| constexpr auto operator/( int y, const std::chrono::month_weekday_last& mwdl ) noexcept -> std::chrono::year_month_weekday_last; |
(38) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_weekday_last& mwdl, const std::chrono::year& y ) noexcept |
(39) | (C++20以降) |
| constexpr auto operator/( const std::chrono::month_weekday_last& mwdl, int y ) noexcept -> std::chrono::year_month_weekday_last; |
(40) | (C++20以降) |
これらの operator/ オーバーロードは、投影グレゴリオ暦の日付を作成するための慣習的な構文を提供します。
完全な日付を作成するために、次の 3 つの順序のいずれかが受け入れられます。
-
年/月/日, -
月/日/年, -
日/月/年.
各場合で、day は次のいずれかに置き換えることができます。
- std::chrono::last、その月の最終日。
-
weekday[i]、その月のi番目の weekday。 -
weekday[std::chrono::last]、その月の最後の weekday。
意味が他のオペランドの型から曖昧でない場合、プレーンな整数が受け入れられます。たとえば、2005y/4/5 は許可されますが、5/April/2005 は許可されません。
(year_month、month_day など)の部分日付型は、3 つの順序のいずれかで 2 番目の operator/ を適用しないことで作成できます。
[編集] 戻り値
[編集] 例
#include <chrono> using namespace std::chrono; constexpr auto ym{2021y/8}; static_assert(ym == year_month(year(2021), August)); constexpr auto md{9/15d}; static_assert(md == month_day(September, day(15))); constexpr auto mdl{October/last}; static_assert(mdl == month_day_last(month(10))); constexpr auto mw{11/Monday[3]}; static_assert(mw == month_weekday(November, Monday[3])); constexpr auto mwdl{December/Sunday[last]}; static_assert(mwdl == month_weekday_last(month(12), weekday_last(Sunday))); // Those 3 year/month/day orders that people actually use on this planet and beyond: constexpr auto ymd{year(2021)/January/day(23)}; static_assert(ymd == month{1}/23/2021); static_assert(ymd == day{23}/1/2021); static_assert(ymd == year_month_day(2021y, month(January), 23d)); int main() {}