最終更新日時(UTC):
が更新

履歴 編集

function template
<chrono>

std::chrono::operator<=>(C++20)

namespace std::chrono {
  template <class Rep1, class Period1, class Rep2, class Period2>
       requires three_way_comparable<
         typename common_type_t<
           duration<Rep1, Period1>,
           duration<Rep2, Period2>
         >::rep
       >
  constexpr auto
    operator<=>(const duration<Rep1, Period1>& lhs,
                const duration<Rep2, Period2>& rhs);  // (1) C++20
}

概要

三方比較を行う

戻り値

2つのdurationの単位を合わせた上で、count()の三方比較を行う。

using ct = common_type<decltype(lhs), decltype(rhs)>::type;
return ct(lhs).count() <=> ct(rhs).count();

#include <cassert>
#include <chrono>

using namespace std::chrono;

int main()
{
  assert((seconds{3} <=> seconds{3}) == 0);
  assert((seconds{3} <=> milliseconds{3000}) == 0);
}

出力

バージョン

言語

  • C++20

処理系

参照