名前空間
変種
操作

std::chrono::operator<<(std::chrono::day)

From cppreference.com
< cpp‎ | chrono‎ | day
 
 
 
 
ヘッダー <chrono> で定義
template< class CharT, class Traits >

std::basic_ostream<CharT, Traits>&

    operator<<( std::basic_ostream<CharT, Traits>& os, const std::chrono::day& d );
(C++20以降)

std::basic_string<CharT> s を形成します。この文字列は、d に格納されている日値を、10進数としてフォーマットしたものです。結果が1桁の10進数になる場合は、先頭にゼロが追加されます。次に、!d.ok() の場合、フォーマットされた文字列に " is not a valid day" を追加します。この文字列を os に挿入します。

以下と等価です。

return os << (d.ok() ?
    std::format(STATICALLY_WIDEN<CharT>("{:%d}"), d) :
    std::format(STATICALLY_WIDEN<CharT>("{:%d} is not a valid day"), d));

ここで STATICALLY_WIDEN<CharT>("...") は、 CharTchar の場合は "..." であり、 CharTwchar_t の場合は L"..." です。

[編集] 戻り値

os

[編集]

#include <chrono>
#include <iostream>
 
int main()
{
    constexpr std::chrono::day d1{31}, d2{7}, d3{42}, d4{};
    std::cout << d1 << '\n'
              << d2 << '\n'
              << d3 << '\n'
              << d4 << '\n';
}

実行結果の例

31
07
42 is not a valid day
00 is not a valid day

[編集] 関連項目

(C++20)
引数のフォーマット済み表現を新しい文字列に格納する
(関数テンプレート) [編集]
day の書式設定サポート
(クラス テンプレートの特殊化) [edit]
English 日本語 中文(简体) 中文(繁體)