Skip to content

Latest commit

 

History

History
81 lines (63 loc) · 2.45 KB

File metadata and controls

81 lines (63 loc) · 2.45 KB

operator<<

  • chrono[meta header]
  • std::chrono[meta namespace]
  • function[meta id-type]
  • cpp20[meta cpp]
namespace std::chrono {
  template <class charT, class traits, class Duration>
  std::basic_ostream<charT, traits>&
    operator<<(std::basic_ostream<charT, traits>& os, const hh_mm_ss<Duration>& hms); // (1) C++20
}

概要

hh_mm_ssオブジェクトを出力ストリームに出力する。

戻り値

便宜上のリテラルキャストSTATICALLY-WIDENを導入する。STATICALLY-WIDEN<charT>("...")は、charTcharである場合は"..."charTwchar_tである場合はL"..."を意味する。

  • (1) : 以下と等価:
    return os << format(os.getloc(),
                        STATICALLY-WIDEN<charT>("{:L%T}"),
                        hms);
    • format[link /reference/format/format.md]
    • os.getloc()[link /reference/ios/ios_base/getloc.md]

備考

  • このクラスのオブジェクトを文字列フォーマットする場合、負数には先頭に- (マイナス) がつく

#include <iostream>
#include <chrono>

namespace chrono = std::chrono;
using std::chrono::last;
using namespace std::chrono_literals;

int main()
{
  std::cout << chrono::hh_mm_ss{15h + 30min + 20s} << std::endl;
  std::cout << chrono::hh_mm_ss{-(15h + 30min + 20s)} << std::endl;
  std::cout << chrono::hh_mm_ss{15h + 30min + 20s + 123ms} << std::endl;
}
  • 15h[link /reference/chrono/duration/op_h.md]
  • 30min[link /reference/chrono/duration/op_min.md]
  • 20s[link /reference/chrono/duration/op_s.md]
  • 123ms[link /reference/chrono/duration/op_ms.md]

出力

15:30:20
-15:30:20
15:30:20.123

バージョン

言語

  • C++20

処理系

  • Clang: 10.0 [mark noimpl]
  • GCC: 10.1 [mark noimpl]
  • Visual C++: 2019 Update 3 [mark noimpl]

関連項目

参照