std::chrono:: operator+, std::chrono:: operator- (std::chrono::year)
|
constexpr
std::
chrono
::
year
operator
+
(
const
std::
chrono
::
year
&
y,
const std:: chrono :: years & ys ) noexcept ; |
(1) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year
operator
+
(
const
std::
chrono
::
years
&
ys,
const std:: chrono :: year & y ) noexcept ; |
(2) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year
operator
-
(
const
std::
chrono
::
year
&
y,
const std:: chrono :: years & ys ) noexcept ; |
(3) | (начиная с C++20) |
|
constexpr
std::
chrono
::
years
operator
-
(
const
std::
chrono
::
year
&
y1,
const std:: chrono :: year & y2 ) noexcept ; |
(4) | (начиная с C++20) |
Содержание |
Возвращаемое значение
Примечания
Если результирующее значение года для
(1-3)
выходит за пределы диапазона
[
-
32767
,
32767
]
, фактическое сохраняемое значение не определено.
Результат вычитания двух значений
year
представляет собой длительность типа
std::chrono::years
. Эта единица длительности соответствует продолжительности среднего григорианского года, и результирующая длительность не связана с количеством дней в конкретных годах, представленных операндами. Например, результат
2018y
-
2017y
равен
std::
chrono
::
years
(
1
)
, что соответствует 365.2425 дням, а не 365 дням.
Пример
#include <cassert> #include <chrono> int main() { std::chrono::year y{2020}; y = std::chrono::years(12) + y; // перегрузка (2): duration + time point assert(y == std::chrono::year(2032)); y = y - std::chrono::years(33); // перегрузка (3): time point - duration assert(y == std::chrono::year(1999)); // y = std::chrono::years(33) - y; // не поддерживается: duration - time point using namespace std::chrono; constexpr std::chrono::years ys = 2025y - 2020y; // перегрузка (4) static_assert(ys == std::chrono::years(5)); }
Смотрите также
|
увеличивает или уменьшает месяц
(публичная функция-член
std::chrono::month
)
|
|
|
добавляет или вычитает количество месяцев
(публичная функция-член
std::chrono::month
)
|