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) | (since C++20) |
constexpr std::chrono::year_month_weekday&
operator+=( const std::chrono::months& dm ) const noexcept;
| (2) | (since C++20) |
constexpr std::chrono::year_month_weekday&
operator-=( const std::chrono::years& dy ) const noexcept;
| (3) | (since C++20) |
constexpr std::chrono::year_month_weekday&
operator-=( const std::chrono::months& dm ) const noexcept;
| (4) | (since 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) | добавляет или вычитает продолжительность и некоторое количество лет или месяцев (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/year_month_weekday/operator_arith