std::chrono...::operator-=(3)
π std::chrono...::operator-=(3) π
okay bestie, welcome to the std::chrono...::operator-=(3) page from the C++ Standard Libary β yes, thatβs the manual name, typo and all, and we are keeping it π This is the group chat where std::chrono::year_month learns to plus-equals and minus-equals, and honestly? iconic.
β¨ NAME β¨
The NAME block is serving copy-paste realness, so hereβs the exact thing it lists β twice, because the page says it twice, no cap:
std::chrono::year_month::operator+=,std::chrono::year_month::operator-=- and again:
std::chrono::year_month::operator+=,std::chrono::year_month::operator-=
πΈ Synopsis πΈ
Hereβs the overload lineup π
all four are constexpr, all four are noexcept, and all four are since C++20:
constexpr std::chrono::year_month& (1)
(since C++20)
operator+=( const std::chrono::years& dy ) const noexcept;
constexpr std::chrono::year_month& (2)
(since C++20)
operator+=( const std::chrono::months& dm ) const noexcept;
constexpr std::chrono::year_month& (3)
(since C++20)
operator-=( const std::chrono::years& dy ) const noexcept;
constexpr std::chrono::year_month& (4)
(since C++20)
operator-=( const std::chrono::months& dm ) const noexcept;
Okay so what does it actually do? It modifies the time point *this represents by the duration dy or dm β¨
- Equivalent to
*this = *this + dy;. - Equivalent to
*this = *this + dm;. - Equivalent to
*this = *this - dy;. - Equivalent to
*this = *this - dm;.
For durations that are convertible to bothstd::chrono::yearsandstd::chrono::months, the years overloads(1,3)are preferred if the call would otherwise be ambiguous. thatβs the rule, bestie, write it down π«Ά
π Example π
Run this code β itβs literally the demo, and itβs kind of a slay:
// Run this code
#include <cassert>
#include <chrono>
int main()
{
auto ym{std::chrono::day(1)/7/2023};
ym -= std::chrono::years{2};
assert(ym.month() == std::chrono::July);
assert(ym.year() == std::chrono::year(2021));
ym += std::chrono::months{7};
assert(ym.month() == std::chrono::month(2));
assert(ym.year() == std::chrono::year(2022));
}
π See also π
operator+performs arithmetic onyear_monthoperator-(function)(C++20)
source/version: http://cppreference.com Β· date: 2024.06.10 Β· page: std::chrono...::operator-=(3) β mwah π thatβs the footer, bestie, and we are so done here π«Ά
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms