std::chrono:: operator<< (std::chrono::year)
|
定義先ヘッダ
<chrono>
|
||
|
template
<
class
CharT,
class
Traits
>
std::
basic_ostream
<
CharT, Traits
>
&
|
(C++20以降) | |
std:: basic_string < CharT > s を形成し、これは y に格納された年値を10進数としてフォーマットしたもので、結果が4桁未満になる場合は左側を 0 で4桁になるようにパディングします。その後、 ! y. ok ( ) が真の場合、フォーマットされた文字列に " is not a valid year" を追加します。その文字列を os に挿入します。
次と同等
return
os
<<
(
y.
ok
(
)
?
std::
format
(
STATICALLY_WIDEN
<
CharT
>
(
"{:%Y}"
)
, y
)
:
std::
format
(
STATICALLY_WIDEN
<
CharT
>
(
"{:%Y} is not a valid year"
)
, y
)
)
;
STATICALLY_WIDEN
<
CharT
>
(
"..."
)
は、
CharT
が
char
の場合
"..."
であり、
CharT
が
wchar_t
の場合
L
"..."
です。
戻り値
os
例
#include <chrono> #include <iostream> int main() { constexpr std::chrono::year y1{2020}, y2{-020}, y3{98304}; std::cout << y1 << '\n' << y2 << '\n' << y3 << '\n'; }
出力例:
2020 -0016 -32768 is not a valid year
関連項目
|
(C++20)
|
引数のフォーマットされた表現を新しい文字列に格納する
(関数テンプレート) |
year
のフォーマットサポート
(クラステンプレートの特殊化) |