- chrono[meta header]
- std::chrono[meta namespace]
- class[meta id-type]
- cpp20[meta cpp]
namespace std::chrono {
class month;
}
month
は、特定の年に属するわけではない、月単体の値を表すカレンダー表現のためクラスである。
通常は値の範囲として[1, 12]
を扱うが、このクラスではその範囲外の値として[0, 255]
まで扱える。
このクラスは等値比較および大小比較ができ、EqualityComparableおよびLessThanComparableの要件を満たす。
このクラスは、トリビアルコピー可能で、かつスタンダードレイアウト型である。
- このクラスは時間間隔を表す型ではない。月の時間間隔は
months
である
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++20 |
month& operator=(const month&) = default; month& operator=(month&&) = default; |
代入演算子 |
C++20 |
名前 |
説明 |
対応バージョン |
ok |
値が範囲[1, 12] に収まっているか判定する |
C++20 |
名前 |
説明 |
対応バージョン |
operator/ |
カレンダー要素同士をつなぎ合わせる |
C++20 |
名前 |
説明 |
対応バージョン |
operator== |
等値比較を行う |
C++20 |
bool operator!=(const month&, const month&) noexcept; |
非等値比較を行う (== により使用可能) |
C++20 |
operator<=> |
三方比較を行う |
C++20 |
bool operator<(const month&, const month&) noexcept; |
左辺が右辺より小さいかを判定する (<=> により使用可能) |
C++20 |
bool operator<=(const month&, const month&) noexcept; |
左辺が右辺以下を判定する (<=> により使用可能) |
C++20 |
bool operator>(const month&, const month&) noexcept; |
左辺が右辺より大きいかを判定する (<=> により使用可能) |
C++20 |
bool operator>=(const month&, const month&) noexcept; |
左辺が右辺以上を判定する (<=> により使用可能) |
C++20 |
名前 |
説明 |
対応バージョン |
template <class T> struct hash; |
hash クラスの先行宣言 |
C++26 |
template<> struct hash<chrono::month>; |
hash クラスのmonth に対する特殊化 |
C++26 |
#include <iostream>
#include <chrono>
namespace chrono = std::chrono;
int main() {
chrono::month m = chrono::January;
++m;
std::cout << m << std::endl;
chrono::month n = chrono::March;
n += chrono::months{3};
std::cout << n << std::endl;
}
- chrono::month[color ff0000]
- chrono::January[link month_constants.md]
- chrono::March[link month_constants.md]
- Clang: 8.0 (入出力ストリームなし) [mark verified]
- GCC: 9.2 [mark noimpl]
- Visual C++: 2019 Update 3 [mark noimpl]