namespace std::chrono {
template <class charT, class traits>
std::basic_ostream<charT, traits>&
operator<<(std::basic_ostream<charT, traits>& os, const month& m); // (1) C++20
}
概要
month
オブジェクトを出力ストリームに出力する。
戻り値
便宜上のリテラルキャストSTATICALLY-WIDEN
を導入する。STATICALLY-WIDEN<charT>("...")
は、charT
がchar
である場合は"..."
、charT
がwchar_t
である場合はL"..."
を意味する。
- (1) : 以下と等価:
return os << (m.ok() ? format(os.getloc(), STATICALLY-WIDEN<charT>("{:L%b}"), m) : format(os.getloc(), STATICALLY-WIDEN<charT>("{} is not a valid month"), static_cast<unsigned int>(m)));
備考
- このフォーマットでは、ロケール規定の月の短縮名が出力される。デフォルトのCロケールでは、以下のように出力される:
月の定数 | 出力される月名 (Cロケール) |
---|---|
January |
Jan |
February |
Feb |
March |
Mar |
April |
Apr |
May |
May |
June |
Jun |
July |
Jul |
August |
Aug |
Sptember |
Sep |
October |
Oct |
November |
Nov |
December |
Dec |
例
#include <iostream>
#include <chrono>
namespace chrono = std::chrono;
int main()
{
chrono::month ar[] = {
chrono::January,
chrono::February,
chrono::March,
chrono::April,
chrono::May,
chrono::June,
chrono::July,
chrono::August,
chrono::September,
chrono::October,
chrono::November,
chrono::December
};
for (chrono::month m : ar) {
std::cout << m << std::endl;
}
}
出力
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
バージョン
言語
- C++20
処理系
- Clang: 9.0 ❌
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌
関連項目
- chronoの
std::format()
(フォーマットの詳細)
参照
- P2372R1 Fixing locale handling in chrono formatters
- この提案文書はC++20の策定後に採択されたが、実装が追いついていない時期の採択だったために、C++20の仕様として扱われる