- chrono[meta header]
- std::chrono[meta namespace]
- hh_mm_ss[meta class]
- function[meta id-type]
- cpp20[meta cpp]
constexpr precision to_duration() const noexcept; // (1) C++20時:分:秒、秒未満をもつdurationオブジェクトに変換する。
is_negative()がtrueであれば-(hours() + minutes() + seconds() + subseconds())を返し、そうでなければhours() + minutes() + seconds() + subseconds()を返す。
#include <cassert>
#include <chrono>
namespace chrono = std::chrono;
using namespace std::chrono_literals;
int main()
{
chrono::hh_mm_ss time1{15h + 30min + 20s};
assert(time1.to_duration() == 15h + 30min + 20s);
chrono::hh_mm_ss time2{-(15h + 30min + 20s)};
assert(time2.to_duration() == -(15h + 30min + 20s));
chrono::hh_mm_ss time3{15h + 30min + 20s + 123ms};
assert(time3.to_duration() == 15h + 30min + 20s + 123ms);
}- to_duration()[color ff0000]
- 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]
- C++20
- Clang: 10.0
- GCC: 11.1
- Visual C++: (2019 Update 3時点で実装なし)