std::chrono:: operator+, std::chrono:: operator- (std::chrono::month)
|
Определено в заголовочном файле
<chrono>
|
||
|
constexpr
std::
chrono
::
month
operator
+
(
const
std::
chrono
::
month
&
m,
const std:: chrono :: months & ms ) noexcept ; |
(1) | (начиная с C++20) |
|
constexpr
std::
chrono
::
month
operator
+
(
const
std::
chrono
::
months
&
ms,
const std:: chrono :: month & m ) noexcept ; |
(2) | (начиная с C++20) |
|
constexpr
std::
chrono
::
month
operator
-
(
const
std::
chrono
::
month
&
m,
const std:: chrono :: months & ms ) noexcept ; |
(3) | (начиная с C++20) |
|
constexpr
std::
chrono
::
months
operator
-
(
const
std::
chrono
::
month
&
m1,
const std:: chrono :: month & m2 ) noexcept ; |
(4) | (начиная с C++20) |
[
0
,
11
]
, и затем добавления 1.
[
0
,
11
]
и
m2
+
m
==
m1
. В противном случае возвращаемое значение не определено.
Содержание |
Возвращаемое значение
Примечания
Пока вычисление не приводит к переполнению, (1-3) всегда возвращает корректный месяц, даже если m. ok ( ) имеет значение false .
Результат вычитания двух значений
month
представляет собой длительность типа
std::chrono::months
. Эта единица длительности соответствует средней продолжительности григорианского месяца, и результирующая длительность не связана с количеством дней в конкретных месяцах, представленных операндами. Например,
std::
chrono
::
seconds
(
std::
chrono
::
April
-
std::
chrono
::
March
)
— это не количество секунд в марте (
2678400s
), а
2629746s
(30.436875 дней).
Пример
#include <cassert> #include <chrono> int main() { std::chrono::month m{6}; m = m + std::chrono::months(2); assert(m == std::chrono::month(8)); m = m - std::chrono::months(3); assert(m == std::chrono::month(5)); constexpr std::chrono::months ms = std::chrono::month(8) - std::chrono::month(6); static_assert(ms == std::chrono::months(2)); }
Смотрите также
|
увеличивает или уменьшает месяц
(public member function) |
|
|
добавляет или вычитает количество месяцев
(public member function) |