std::chrono::operator+, std::chrono::operator- (std::chrono::year_month_day_last)
From cppreference.com
< cpp | chrono | year month day last
| ヘッダー <chrono> で定義 |
||
| constexpr std::chrono::year_month_day_last operator+( const std::chrono::year_month_day_last& ymdl, |
(C++20以降) | |
| constexpr std::chrono::year_month_day_last operator+( const std::chrono::months& dm, |
(C++20以降) | |
| constexpr std::chrono::year_month_day_last operator+( const std::chrono::year_month_day_last& ymdl, |
(C++20以降) | |
| constexpr std::chrono::year_month_day_last operator+( const std::chrono::years& dy, |
(C++20以降) | |
| constexpr std::chrono::year_month_day_last operator-( const std::chrono::year_month_day_last& ymdl, |
(C++20以降) | |
| constexpr std::chrono::year_month_day_last operator-( const std::chrono::year_month_day_last& ymdl, |
(C++20以降) | |
1,2) dm.count()ヶ月を、ymdlが表す日付に追加します。 結果は、std::chrono::year_month(ymdl.year(), ymdl.month()) + dmと同じ
year()およびmonth()を持ちます。3,4) dy.count()年を、ymdlが表す日付に追加します。 結果は、std::chrono::year_month_day_last(ymdl.year() + dy, ymdl.month_day_last())と同等です。
5) dm.count()ヶ月を、ymdlが表す日付から減算します。ymdl + -dmと同等です。
6) dy.count()年を、ymdlが表す日付から減算します。ymdl + -dyと同等です。
std::chrono::yearsとstd::chrono::monthsの両方に変換可能な期間の場合、呼び出しが曖昧になる可能性があるときは、yearsのオーバーロード (3,4,6) が優先されます。
[編集] 例
このコードを実行
#include <cassert> #include <chrono> #include <iostream> int main() { auto ymdl{11/std::chrono::last/2020}; std::cout << ymdl << '\n'; ymdl = std::chrono::years(10) + ymdl; std::cout << ymdl << '\n'; assert(ymdl == std::chrono::day(30)/ std::chrono::November/ std::chrono::year(2030)); ymdl = ymdl - std::chrono::months(6); std::cout << ymdl << '\n'; assert(ymdl == std::chrono::day(31)/ std::chrono::May/ std::chrono::year(2030)); }
出力
2020/Nov/last 2030/Nov/last 2030/May/last