std::chrono::year_month_weekday::operator+=, std::chrono::year_month_weekday::operator-=
constexpr std::chrono::year_month_weekday&
operator+=( const std::chrono::years& dy ) const noexcept;
| (1) | (начиная с C++20) |
constexpr std::chrono::year_month_weekday&
operator+=( const std::chrono::months& dm ) const noexcept;
| (2) | (начиная с C++20) |
constexpr std::chrono::year_month_weekday&
operator-=( const std::chrono::years& dy ) const noexcept;
| (3) | (начиная с C++20) |
constexpr std::chrono::year_month_weekday&
operator-=( const std::chrono::months& dm ) const noexcept;
| (4) | (начиная с C++20) |
Изменяет точку времени, которую представляет *this, на длительность dy или dm.
1) Эквивалентно
*this = *this + dy;.
2) Эквивалентно
*this = *this + dm;.
3) Эквивалентно
*this = *this - dy;.
4) Эквивалентно
*this = *this - dm;.Для длительностей, преобразуемых как в std::chrono::years, так и в std::chrono::months, предпочтение отдается перегрузкам years (1,3), если в противном случае вызов был бы неоднозначным.
Пример
#include <cassert>
#include <chrono>
#include <iostream>
int main()
{
auto ymwi{1/std::chrono::Wednesday[2]/2021};
std::cout << ymwi << '\n';
ymwi += std::chrono::years(5);
std::cout << ymwi << '\n';
assert(static_cast<std::chrono::year_month_day>(ymwi) ==
std::chrono::year(2026)/1/14);
ymwi -= std::chrono::months(1);
std::cout << ymwi << '\n';
assert(static_cast<std::chrono::year_month_day>(ymwi) ==
std::chrono::day(10)/12/2025);
}
Вывод:
2021/Jan/Wed[2] 2026/Jan/Wed[2] 2025/Dec/Wed[2]
См. также
|
(C++20) | прибавляет или вычитает year_month_weekday и некоторое количество лет или месяцев (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/chrono/year_month_weekday/operator_arith