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 の場合でも常に有効な月を返します。
2つの
month
値の減算結果は
std::chrono::months
型の期間(duration)です。この期間単位はグレゴリオ暦の平均的な月の長さを表し、結果の期間はオペランドで表される特定の月の日数とは無関係です。例えば、
std::
chrono
::
seconds
(
std::
chrono
::
April
-
std::
chrono
::
March
)
の結果は3月の秒数(
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)); }
関連項目
|
月をインクリメントまたはデクリメントする
(公開メンバ関数) |
|
|
月数を加算または減算する
(公開メンバ関数) |