Scroll to navigation

std::chrono::month::operator++,std::chrono::month::operator--(3) C++ Standard Libary std::chrono::month::operator++,std::chrono::month::operator--(3)

NAME

std::chrono::month::operator++,std::chrono::month::operator-- - std::chrono::month::operator++,std::chrono::month::operator--

Synopsis


constexpr std::chrono::month& operator++() noexcept; (1) (since C++20)
constexpr std::chrono::month operator++(int) noexcept; (2) (since C++20)
constexpr std::chrono::month& operator--() noexcept; (3) (since C++20)
constexpr std::chrono::month operator--(int) noexcept; (4) (since C++20)


Adds or subtracts 1 from the month value, reducing the result modulo 12 to an
integer in the range [1, 12].


1-2) Performs *this += std::chrono::months{1};
3-4) Performs *this -= std::chrono::months{1};

Parameters


(none)

Return value


1,3) a reference to this month after modification
2,4) a copy of the month made before modification

Notes


After a call to one of these functions, ok() is always true.

Example

// Run this code


#include <cassert>
#include <iostream>
#include <chrono>


int main()
{
std::chrono::month m {6};


++m;
assert(m == std::chrono::month(7));


--m;
assert(m == std::chrono::month(6));


m = std::chrono::December;
m++; // rounds up to January
assert(m.ok());
std::cout << unsigned(m) << '\n';


m = std::chrono::January;
m--; // rounds down to December
assert(m.ok());
std::cout << unsigned(m) << '\n';
}

Output:


1
12

See also


operator+= adds or subtracts a number of months
operator-= (public member function)
operator+ performs arithmetic on months
operator- (function)
(C++20)

2022.07.31 http://cppreference.com